2012-12-25 4 views
1

J'ai programme en C.Stack en boucle sur et plus

Supposons enseignant vous a engagé comme consultant logiciel pour écrire un programme qui aiderait des enseignants à accélérer leur marquage des questions à choix multiples. Pour ce programme, vous devez faire un prototype de programme pour marquer les documents de questions consistant en 10 questions à choix multiples en utilisant le langage de programmation C.

Chaque question comporte quatre choix a, b, c et d. Le conférencier doit regarder la feuille de réponses de l'élève et entrer les réponses (a, b, c et d) un par un. Le programme C doit comparer la réponse à la solution, sortir un / si la réponse est correcte, un x s'il est incorrect, et le programme doit alors calculer la note obtenue sur un total de 10 points.

Exemple.

question 1: a/ 
question 1: bx 

Supposons que les réponses sont (a, b, c, d, a, b, c, d, a, b), respectivement, et je dois demander à l'utilisateur d'appuyer sur y à boucle à nouveau et n à quitte la boucle.

z='y','n'; 
while (z=='y') 
{ 
    while (count<10) 
    { 
     printf("\n question #%d:",count+1); 
     r=getch(); 

     while(r!='a' && r!='b' && r!='c' && r!='d') 
     { 
      r=getch(); 
     } 
     putch(r);  

     if (r==answer[count]) 
     { 
      putch('/'); 
      mark=mark+1; 
     } 
     else 
     { 
      putch('x'); 
     } 
     count++; 
    } 
} 

printf("\n\n the mark is: %d/10", mark); 

printf("\n\n continue? (y/n)"); 
z=getch();  
printf("\n\n "); 
system("pause"); 
return(0); 
+0

Le 'z = 'y', 'n',' construction est un peu bizarre. Souvent, GCC va donner un avertissement pour cela. Il assigne '' y'' à 'z', puis ignore cette valeur; il évalue ''n'' et l'ignore aussi. Déposez le bit ', 'n''. –

Répondre

0

Vous devez mettre tout dans une autre boucle qui devrait se casser lorsque les entrées utilisateur 'n'.

Quelque chose comme:

bool finished = false; 
while (!finished) { 
    // reset status of variables 
    while (count < 10) { 
    // your actual code 
    } 

    finished = /* users typed y or n */ 
}