这是我老师给我的一项任务,一直试图让它工作几天,但找不到导致问题的原因。
我输入的代码适用于2012版Visual Studio,当使用2017版本时,当我在控制台中输入-1时,代码会自动关闭,我无法打印出我想要的等级
#include <stdio.h>
int main()
{
int grades = 0;
int counter = 0;
int A = 0;
int B = 0;
int C = 0;
int D = 0;
int E = 0;
do
{
counter++;
printf("Please enter grade between 0 to 100 or -1 to quit:");
scanf_s("%d", &grades);
if (grades != -1 ){
if (grades >= 90 && grades <= 100)
A++;
else if (grades >= 80 && grades <= 89)
B++;
else if (grades >= 70 && grades <= 79)
C++;
else if (grades >= 60 && grades <= 69)
D++;
else if (grades >= 0 && grades <= 59)
E++;
else counter--;
}
else
counter--;
}
while (grades != -1);
printf("Total Number of Grades = %d\n\n", counter);
printf("Number of grade A: %d\n", A);
printf("Number of grade B: %d\n", B);
printf("Number of grade C: %d\n", C);
printf("Number of grade D: %d\n", D);
printf("Number of grade E: %d\n", E);
return 0;
}
答案 0 :(得分:3)
根据我的理解,程序会按照您的期望(最后打印成绩),但由于程序终止并且窗口关闭,您无法看到结果。您可以使用getchar
函数在最后等待按键,详细解释为here。
答案 1 :(得分:2)
在Visual Studio中保持控制台窗口打开,使用 Ctrl + F5 启动项目,而不是仅仅 F5 。