2013-12-19 69 views
-1

我只是想用c語言打印一個數組7x7,看起來像這樣。printf array 7x7 in c

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"); 
} 
} 

在此先感謝

+1

我算28號,但是你的數組大小是49? –

+0

你爲什麼試圖把零放在那裏?沒有二項式係數是零... – 2013-12-19 18:10:55

+0

正確地設置你的代碼的格式,很多錯誤看起來很明顯。 –

回答

3

if語句具有=(賦值運算符),而不是==(平等的測試),爲一兩件事。使用gcc -Wall標誌編譯這種警告是很好的。此外,由於main應該返回一個int,這將是很好的有一個return聲明在最後...

+0

+1提及-Wall和'main'應該總是返回int。最近看到使用'void main'的人太多了 –

+0

謝謝!我的意思是一個較弱的版本 - 如果它被聲明爲「int」,則最好返回「int」。 'main main'與'void main'相比有什麼重要的原因? (我個人使用'int'來提醒自己檢查函數是否完全寫入,我使用非主要例程的返回值進行錯誤檢查,但是沒有對main進行檢查......) – kbshimmyo

+1

我認爲'void即使工作正常,main也不是有效的C代碼。從我讀過的地方:http://stackoverflow.com/questions/9356510/int-main-vs-void-main-in-c –

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