暗黑奇艺发型:C语言问题(为什么会这样)

来源:百度文库 编辑:中科新闻网 时间:2024/05/11 19:04:29
#include<stdio.h>
#define N 10
void main()
{
int a[N][N],i,j;
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
a[i][0] = 1;
a[i][j] = 1;
}
}
for(i = 2;i < N;i++)
{
for(j = 1;j < N -1;j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}
杨辉三角最早写的,结果编出来的不是这样!在百度问了后,有人给了答案!

#include<stdio.h>
#define N 10
void main()
{
int a[N][N],i,j;
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
a[i][0] = 1;
a[i][j] = 0;
}
}
for(i = 2;i < N;i++)
{
for(j = 1;j < N -1;j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for(i = 0;i < N;i++)
{
for(j = 0;j < N-i;j++)
{
printf(" ");
}
for(j = 0;j < i;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}

我看不懂我他改成这样的目的,不过他那样写是对的!

他题的这个printf("%4d",a[i][j]);
我改成printf("%d",a[i][j]); 为什么就没用?

请问下加4和不加4的区别!
谢谢!

加4是为了对齐而已(因为有的是一位数如2,有的是2位如28,56,用%4d统一用4位)你加5也是一样可以的
其实他还加了printf(" ");
只是你没有看到
不过他做的打印出来也一定不是很整齐
如果是%4d要printf(" "); 要空四格这样才会整齐
当然他还改了一个地方,不过不重要

a[N][N],n不能是变量的。

不加就连起来了,你加个别的数字试试。

加了4是控制输出的格式。加了就会看到你要的格式了。

加4是指定输出的宽度呀!