我开始编程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
答案 0 :(得分:1)
在你的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
标题呢?作为常规编程学科的一部分,一致性非常重要。
答案 1 :(得分:0)
if(responce == answer){
printf("\ncorrect\n");
NumCorrect ++;
}
答案 2 :(得分:0)
您有一个名为NumCorrect
的变量,但您没有在while
循环中使用它。
你需要在while
循环中对它做一些事情,也许在if
语句中。 ; - )