Как отобразить количество правильных ответов? - PullRequest
0 голосов
/ 13 февраля 2011

Я начинаю программировать на C и придумала короткую программу викторины. программа просит пользователя ввести количество вопросов, на которые они хотят ответить. тогда вопросы находятся в том же формате (# + # + # - #), но случайные числа генерируются каждый раз. Мой вопрос заключается в том, как отобразить пользователю количество правильных ответов, которые они получили в конце программы? я знаю, что вам придется выполнить оператор print f, чтобы отобразить его, но я не знаю, что еще

#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
main()
{

srand(time(NULL));

int NumQuestions = 0;
int responce = 0;
int loopcount = 0;
int answer = 0;
int NumCorrect = 0; // HOW TO GET THIS ???????????????????????????????

printf("\n\welcome to your math quize!\n ");

printf("\ntype the numer of questions you would like to answer: ");
scanf("%d", &NumQuestions); //number of questions. 

while(loopcount<NumQuestions){

int n1 = 0;
int n2 = 0; 
int n3 = 0; 
int n4 = 0;
n1 = rand()% 9 + 1;
n2 = rand()% 9 + 1; 
n3 = rand()% 9 + 1; 
n4 = rand()% 9 + 1; 
answer = n1 + n2 + n3 - n4;

              printf("\n%d + %d + %d - %d =", n1, n2, n3, n4);
              scanf("%d", &responce); // user answer

                          if(responce == answer)
                           printf("\ncorrect\n");

                           else
                           printf("\nincorrect\n");

loopcount++;
} //exit loop

printf("you got %d andswers correct!", NumCorrect); //????????????????????????????

getch();
} // end process 

Ответы [ 3 ]

1 голос
/ 13 февраля 2011

В вашем выражении if здесь:

 if(responce == answer)
                       printf("\ncorrect\n");

                       else
                       printf("\nincorrect\n");

Сначала вы должны добавить фигурные скобки и правильно отформатировать его:

 if (responce == answer) {
     printf("\ncorrect\n");
 } else {
     printf("\nincorrect\n");
 }

Затем вы должны исправить английский:

 if (response == answer) {
     printf("\ncorrect\n");
 } else {
     printf("\nincorrect\n");
 }

И тогда все, что вам нужно сделать, это увеличить счетчик для правильного регистра:

 if (response == answer) {
     printf("\ncorrect\n");
     correct_count++;
 } else {
     printf("\nincorrect\n");
 }

Также обратите внимание, что я использовал correct_count здесь вместо NumCorrect, потому что вы должны быть последовательнымив вашем названии;все остальные переменные в нижнем регистре, так почему вы решили сделать заголовок NumCorrect заглавным?Последовательность невероятно важна как часть обычной дисциплины программирования.

0 голосов
/ 13 февраля 2011

У вас есть переменная с именем NumCorrect, но вы не используете ее внутри цикла while.

Вам нужно что-то сделать с ней внутри цикла while, возможно, внутри if заявление.; -)

0 голосов
/ 13 февраля 2011
if(responce == answer){
         printf("\ncorrect\n");
         NumCorrect ++;
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...