我只想用c语言打印一个7x7数组,看起来像这样。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
这是我的代码,我找不到错误。
#include <stdio.h>
int main()
{
int P[7][7],i,j;
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if (i=j) P[i][j]=1;
if (i<j) P[i][j]=0;
if (i>j && j!=0) P[i][j]=(P[i-1][j] + P[i-1][j-1]);
if (j=0) P[i][j]=1;
}
}
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if (P[i][j]=0) printf (" ");
else printf ("%d ",P[i][j]);
}
printf ("\n");
}
}
提前致谢
答案 0 :(得分:3)
您的if
语句只有=
(赋值运算符)而不是==
(相等测试)。对于此类警告,使用gcc -Wall
标志进行编译是很好的。此外,由于main
应该返回int
,最后在最后添加return
语句会很好...
答案 1 :(得分:1)
赋值运算符=
和等号运算符==
之间存在很大差异。 =
运算符将右操作数的值赋给其左操作数,而==
则比较左右操作数的相等性。在所有=
语句中将==
更改为if
。
if (i == j) P[i][j]=1;
if (i < j) P[i][j]=0;
if (i > j && j != 0) P[i][j]=(P[i-1][j] + P[i-1][j-1]);
if (j == 0) P[i][j]=1;
和
if (P[i][j] == 0) printf (" ");
else printf ("%d ",P[i][j]);