2017-10-17 11 views
0

Donc, ci-dessous est le programme que j'essaie de lancer. La partie avec laquelle je rencontre des problèmes exécute une boucle pour compter le nombre total de votes. Je ne comprends pas pourquoi total_votes + = col_totals [i] ne fonctionne pas. Quand j'exécute le programme, j'obtiens un nombre total qui n'a aucun sens. par exemple. 42003993.Donc, j'écris un programme de vote en C et je ne peux pas trouver une boucle for pour compter le nombre total de votes

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 est ce que j'ai des problèmes avec. Je dois créer une boucle for en utilisant row_totals ou col_totals pour calculer le total des votes. Voilà ce que j'ai:

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

Voici le reste du code juste pour la référence: Il ne me laisse pas poster sans ajouter plus de détails ici est donc un texte de remplissage.

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

Doit-on initialiser int votes [5] [4] 'avec {{192,48,206,37} , {147,90,312,21}, {186,12,121,38}, {114,21,408,39}, {267,13,382,29}}; –

+0

C'est que je n'ai pas initialisé total_votes à 0. – thecodemaster

Répondre

3
int total_votes = 0; 

Vous commencez par + = total_votes mais ce qui est total_votes au départ? Sans le mettre à 0, c'est un nombre aléatoire que l'adresse de mémoire est donnée avant que vous ayez créé la variable

+0

Et la note standard: N'ignorez pas les avertissements du compilateur! –

+0

-Wall est votre ami – Tyler

+0

Que diable je pensais que j'ai essayé cela. J'ai essayé tant de combinaisons différentes essayant de trouver la solution que je ne connais même pas. Merci, si simple. Ça fonctionne maintenant. Je suis nouveau à la programmation en essayant toujours de résoudre les problèmes. – thecodemaster