我正在用 C 编写一个超级简单的基于命令行的程序。这只是一个小测试,代码非常简单。所以它的意思是向用户询问他们的姓名、数学成绩、英语成绩、计算成绩。然后它会计算出他们的平均成绩,并告诉他们输入的名字。是的,我知道这是一个非常简单的程序,但我仍然做错了什么。
问题是,我的代码的一部分将首先运行,告诉用户输入他们的姓名,然后一旦他们这样做并按 enter,我的其余代码将立即运行,然后停止工作。很奇怪,我只是不明白出了什么问题。
#include <stdio.h>
int main(int argc, const char * argv[])
{
char chr;
char firstname;
int mathsmark, englishmark, computingmark, averagemark;
printf("What is your name?\n");
scanf("%c", &firstname);
printf("\n");
printf("What is your maths mark?\n");
scanf("%d", &mathsmark);
printf("\n");
printf("What is your english mark?\n");
scanf("%d", &englishmark);
printf("\n");
printf("What is your computing mark?\n");
scanf("%d", &computingmark);
printf("\n");
printf("Your name is: %c", firstname);
printf("\n");
averagemark = (mathsmark + englishmark + computingmark) / 3;
printf("%d", averagemark);
printf("\n");
chr = '\0';
while (chr != '\n') {
chr = getchar ();
}
return 0;
}