c语言输出三角

发布网友

我来回答

4个回答

热心网友

你那个有点问题看这个

#include "stdio.h"

/* N:行数 */

void display(int N)

{

int i, j, m;

for(i=0; i<N; i++)

{

/* 输出每一行的前导空格 */

for(j=0; j<N-1-i; j++)

printf("   ");

/* 输出数字部分的前一半(0..i) */

for(j=0; j<=i; j++)

printf("%3d",j+1);

m=j-1;

/* 输出数字部分的后一半(0..i-1) */

for(j=0; j<i; j++)

printf("%3d",m--);

printf("\n");

}

}

void main()

{

int N;

printf("input rows : ");

scanf("%d", &N);

display(N);

}

运行如图

参考资料:参考http://zhidao.baidu.com/question/278019427.html

热心网友

#include <stdio.h> 

void main() 

{

int n,i,j;

printf("请输入行数:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=(n-i);j++) printf("   ");//这里有3个空格。

for(j=1;j<=i;j++) printf("%3d",j);

for(j=i-1;j>=1;j--) printf("%3d",j);

printf("\n");

}

}

热心网友

j<(2n-1)改成j<(2*n-1)
看了半天终于发现了,你的算法有问题。数字应该是从1输出到行数再输出回1,你怎么想的?
3L正解

热心网友

你这个i就没有赋值啊?坑定有错误啊追问for(i=1;i<=n;i++)
赋了初值的啊

追答终于给你改好了,第三个for语句错误,首先第三个for语句输出不是到2n-1 ,而是到n+i-1,还有输出的是n+i-j,呵呵,看了好久啊。真不容易
#include
void main()
{
while(1)
{
int n,i,j;
printf("请输入行数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=(n-i);j++) printf(" ");
for(j=n-i+1;j<=n;j++) printf("%d",i+j-n);
for(j=n+1;j<=n+i-1;j++) printf("%d",n+i-j);
printf("\n");
}
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com