尝试存储值然后使用-1来打印结果,但程序自行关闭

时间:2017-11-03 10:11:00

标签: c visual-studio

这是我老师给我的一项任务,一直试图让它工作几天,但找不到导致问题的原因。

我输入的代码适用于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;
}

2 个答案:

答案 0 :(得分:3)

根据我的理解,程序会按照您的期望(最后打印成绩),但由于程序终止并且窗口关闭,您无法看到结果。您可以使用getchar函数在最后等待按键,详细解释为here

答案 1 :(得分:2)

在Visual Studio中保持控制台窗口打开,使用 Ctrl + F5 启动项目,而不是仅仅 F5