2017-10-17 54 views
0

所以下面是我試圖運行的程序。我遇到麻煩的部分是運行 a for循環來計算總票數。我不明白爲什麼total_votes + = col_totals [i]不起作用。當我運行該程序時,我得到的總數毫無意義。例如。 42003993.所以我在C寫一個投票程序,我不能拿出一個for循環來計算總票數

int main() 
{ 
    int votes[5][4]={192,48,206,37, 
        147,90,312,21, 
        186,12,121,38, 
        114,21,408,39, 
        267,13,382,29}; 

    char cand[4]={'A','B','C','D'}; 

    int row_totals[5]; 
    int col_totals[4]; 

    int row, col; 
    for(col=0;col<=3;col++) { 
     col_totals[col]=0; 
     for(row=0;row<=4;row++) { 
      col_totals[col] += votes[row][col]; 
     } 
    } 

total_votes是我遇到什麼麻煩。我必須使用row_totals或col_totals來計算總票數來創建for循環。這是我有:

int total_votes; 
    int i; 
    for (i=0; i<=3; i++) { 

     total_votes += col_totals[i]; 
    } 


    float percent[4]; //Not finished yet 


    for(row=0;row<=4;row++) 
    { 
     row_totals[row]=0; 

     for(col=0;col<=3;col++) 
     { 
      row_totals[row] += votes[row][col]; 
     } 
    } 

這裏只是供參考代碼的其餘部分:它不會讓我沒有張貼所以在這裏加入了更多細節的一些填料文字。

printf("   Candidate Candidate Candidate Candidate Total\n"); 
    printf(" Precinct  A   B   C   D  Votes\n"); 
    for(row=0;row<=4;row++) 
    { 
     printf("%6d",row+1); 
     for(col=0;col<=3;col++) 
     { 
      printf("%12d",votes[row][col]); 
     } 
     printf("%11d\n",row_totals[row]); 
    } 
    printf("\nTotal:"); 
    for (col = 0; col <=3; col++) { 
     for(row=0;row<=4;row++); 
     { 
     printf("%12d",col_totals[col]); 
     } 
    } 
    printf("%11d\n", total_votes); 
    return 0; 


} 
+1

應該用{{192,48,206,37}初始化'int votes [5] [4]'' {147,90,312,21},{186,12,121,38},{114,21,408,39},{267,13,382,29}};'? –

+0

這是我沒有初始化total_votes爲0. – thecodemaster

回答

3
int total_votes = 0; 

您可以通過+ = total_votes開始,但什麼是total_votes開始?如果不將它設置爲0,則它​​是一個隨機數,表示它在創建變量之前保存的內存地址

+0

並且標準注意:不要忽略編譯器警告! –

+0

- 牆壁是你的朋友 – Tyler

+0

什麼我覺得我試過了。我嘗試了很多不同的組合,試圖想出我甚至不知道的解決方案。謝謝,這麼簡單。它現在有效。編程新手仍然在努力解決問題。 – thecodemaster