printf array 7x7 in c

时间:2013-12-19 18:06:20

标签: c arrays

我只想用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");
}
}

提前致谢

2 个答案:

答案 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]);