2016-12-13 79 views
-4

我的代碼應該接受一個數組的大小和用戶的值的值,然後平均上方和左側[i] [ j]單元格,並將其放入summatrix數組中的[i] [j]單元格中。 該代碼編譯並接受相應的n值和值,但打印爲零。我檢查了值是否被插入到輸入數組中通過改變printf中的數組從abc到輸入,我也得到零。這是獲取輸入數組值的問題嗎?嘿可以有人幫我在這個任務在C

所以我編輯了代碼,而不是%.2lf其代碼%.2f,並且所有在google上的搜索都顯示出我$ lf有時會做這種事情。

+0

有什麼特別之處有78個元素的數組? (在ascii中,就是這樣)。 – EOF

+1

你不應該在你的問題中包含褻瀆。另外,你還沒有用大括號包圍任何東西。你的代碼將做各種你不想做的事情。 –

+1

'for(i = 1; i <=n;i++)'-->'for(i = 0; i BLUEPIXY

回答

3

根據您的縮進,你會想堅持大括號({})在你的代碼行這樣:

for(i=1;i<=n;i++) 
{ 
    for(j=1;j<=n;j++) 
    { 
     ncells=i*j; 
     sum+=input[i][j]; 
     avrage=(sum)/(ncells); 
     sumatrix[i][j]=avrage; 
    } 
} 

這被普遍認爲是很好的做法,把大括號周圍的一切你的條件和循環,只是爲了明確清楚你打算在條件或循環中包含哪些代碼。只有在絕對確定循環或條件不會包含多行時,才能刪除大括號。

+0

它不被視爲良好的編碼風格,它是一個編譯的要求。 但它被認爲是良好的編碼風格,省略圍繞單個大括號-algument conditionals and loops – Adalcar

+0

@ Adalcar1不以我的經驗爲例,例如,在我工作的地方明確禁止這樣做,但其他人認爲它更乾淨,我想。 – DBPriGuy

+0

我的不好,我我還是一個學生,我想,如果我們比較嚴格的編碼風格允許的,它可能是一個通用的標準 – Adalcar

0

要重複更「強」 DBPriGuy's answer,在C,條件如forifwhile只會影響下statement(單指令或由大括號集包圍)。

for(i=1;i<=n;i++) 
    for(j=1;j<=n;j++) 
     ncells=i*j; 
     sum+=input[i][j]; 
     avrage=(sum)/(ncells); 
     sumatrix[i][j]=avrage; 

等同於(與實際縮進)

for(i=1;i<=n;i++) 
    for(j=1;j<=n;j++) 
     ncells=i*j; 
sum+=input[i][j]; 
avrage=(sum)/(ncells); 
sumatrix[i][j]=avrage; 

一種更好的方式把它是

for(i=1;i<=n;i++) 
    for(j=1;j<=n;j++) 
    { 
     ncells=i*j; 
     sum+=input[i][j]; 
     avrage=(sum)/(ncells); 
     sumatrix[i][j]=avrage; 
    } 
+0

不調用它的*指令*,它被稱爲*語句*。塊*是* a *語句*。 – EOF

+0

我站好了 – Adalcar