c语言编写数字金字塔的时候,应该怎么编写才能在数字之间添加空格?

#include<stdio.h>
void main()
{
int i,j,k,n,l;
printf("please input a integer:");
do{
scanf("%d",&k);

} while(k<0) ;
printf("\n");
for(i=1;i<k+1;i++) /*row*/
{for(j=i;j<k;j++) /* */
printf(" ");
for(l=1;l<i+1;l++) /*letf*/
printf("%d",l);
for(n=i-1;n>0;n--) /*right*/
printf("%d",n);

printf("\n");
}
这个是我找的,但是输出的金字塔中间没有空格,应该在什么地方加写什么呢?

第1个回答  2015-04-14
{for(j=i;j<k;j++) /* */
printf(" ");
for(l=1;l<i+1;l++) /*letf*/
printf("%d",l);
printf(" ");
for(n=i-1;n>0;n--) /*right*/
printf("%d",n);
printf(" ");
printf("\n");
}追问

能不能,,具体解释下。。我刚开始学不太明白。。。

追答

k就是你输入的数字,其实也就是一个循环for(i=1;i<k+1;i++) ,循环K次,下面知识输出数字而已,缺少空格用printf(" ");加上就行了

追问

1
1 2 1
1 2 3 2 1

第一行的1在中间,怎么才能打这种空格啊。。

本回答被提问者和网友采纳
第2个回答  2015-04-14
将printf("%d",l);改为printf("%-2d",l);也可以的追问

怎么写才能把金字塔正过来啊

如何用c语言编写这个数字金字塔
void main(){ int i,j;for (i=1;i<=3;++i) \/\/ 控制金字塔的层数,本例输出3层,可以改变输出任意层 { for (j=1;j<=3-i;++j) \/\/ 控制金字塔每层前面输出的空格数 printf(" ");for (j=1;j<=2*i-1;++j) \/\/ 控制金字塔每层需要打印'*'的个数 printf("*");printf("\\...

c语言程序输出数字金字塔
在你需要加空格的地方加空格就行了。偷懒的做法。 把#换成空格就好了!#include <stdio.h> int main(void) { printf("###1\\n"); printf("###12#21\\n"); printf("##123###321\\n"); printf("1234###4321\\n"); return 0; } zheni2003 | 发布于2009-02-25 举报| 评论 1 11 为您推荐...

如何用C语言输出数字金字塔
include"stdio.h"void main(){ int n,i,j,k;printf("input n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(k=1;k<=2*(n-i);k++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%d ",i);printf("\\n");} } ...

编写一个函数,其功能是输出数字金字塔,要求用递归方法来解决。_百度...
include <stdio.h>int N;void py( int n ){if ( n > 0){int i;py( n-1 ); \/\/先输出前边的数for(i=0;i<N-n;i++ ) \/\/输出前导空格,这里N是全局变量,表示最大的数printf(" ");for(i=1;i<n;i++ ) \/\/1到n-1printf("%d",i );for(;i>=1;i-- )printf("%d",...

C语言输出数字金字塔 :1 22 333 4444 样式的 算法描述?
void main(){ int i,j,k; \/\/定义变量 for(i=1;i<=9;i++) \/\/控制行数在内循环中每行的i不变 { for(j=1;j<=36-i;j++) \/\/每行的空格数减1 printf(" ");for(k=1;k<=i;k++) \/\/ 控制输出数字的个数 printf("%2c",48+i); \/\/48是字符’0’的ASCLL码...

c语言 两个输出值之间加空格 应该怎么编写呢??求高手指教!
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:int a = 6, b= 7;printf("%d %d", a, b);。3、编译器运行test.cpp文件,此时成功在2个输出值中间加入了空格。

求解C语言中,空格在输入时的作用?。。。
一般在编写程序时,不提倡写入空格,因为可能会出现难以预知的变化。因为它规定:(1)当输入的是数字时,比如scanf("%d",a);这时你输入空格是当作没有输入的,如输入“(空格)(空格)(空格)(回车)“,程序还在那里等着呢!可是如果你如果输入”(空格)(空格)123(空格)(回车)“则程序把...

求一道题,c语言的,关于数字金字塔的
d=e+b=(f+c)+(c+a),即d至少大于e、b、f、c、e五个数,所以此位置为5 同理推出其他位置的至少大于其他数的个数,结果如上图所示 这样的情况下,可以肯定的得出k=15 而:g≥10,且l≥10,即g和l的取值为10,11,12,13,14 所以g+l>20 而k=g+l=15 所以无法成立,此题无解!

c语言中,如果用scanf输入多个数字,每个数字之间在输入的时候能用逗号...
scanf("%d,%d",&a,&b); \/\/这种输入的时候逗号隔开 scanf("%d%d",&a,&b); \/\/这种输入的时候不需要逗号隔开,空格或tab或回车隔开就行

打印数字金字塔的PASCAL程序
(2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环 体中需要包含多个语句则应该如上例所示,采用一条复合语句。2.WHILE循环的执行功能 当执行到WHILE语句时 (1)求出布尔表达式的值 (2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4 (3)重复步骤1...

相似回答