[问题] if的简单问题

楼主: louisshih (老牧师4ni)   2018-05-24 18:01:29
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
vs2017 c++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
输入第一笔成绩没有显示想对应的英文
喂入的资料(Input):
预期的正确结果(Expected Output):
输入一笔成绩会直接显示相对应的英文
错误结果(Wrong Output):
输入第一笔资料没有直接输出相对应的英文
而是要输入第2笔才会有第1笔资料的对应英文
以此类推
输入第11笔资料时才会出现第10笔资料相对应的英文
https://imgur.com/a/4LRVa0d
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
附上CODE网页:https://ideone.com/p5nWHO
int main()
{
int count=0, counta=0, countb=0, countc=0;
int score;
start:
printf("输入成绩:");
scanf_s("%d\n", &score);
if (score > 75)
{
printf("成绩为A\n");
counta++;
}
else if (score > 60)
{
printf("成绩为B\n");
countb++;
}
else
{
printf("成绩为C\n");
countc++;
}
count++;
if (count < 10)
goto start;
printf("目前有%d位的成绩\n", count);
printf("有%d位的成绩为A\n", counta);
printf("有%d位的成绩为B\n", countb);
printf("有%d位的成绩为C\n", countc);
system("pause");
return 0;
}
补充说明(Supplement):
作者: stimim (qqaa)   2018-05-24 18:11:00
楼主: louisshih (老牧师4ni)   2018-05-24 18:46:00
我把scanf_s的换行删掉就有了
作者: jerryh001   2018-05-24 18:53:00
没事别随便goto
楼主: louisshih (老牧师4ni)   2018-05-24 19:58:00
是目前自学学到goto
作者: wawi2 (@@)   2018-05-24 20:00:00
除了写OS code外 尽量少用goto
作者: boss0405 (boss)   2018-05-25 00:16:00
如果各function拆的够干净,用goto也不会不好而且goto在处理err handling时,有时候可以让code更漂亮
作者: bluesoul (忙死你老爸)   2018-05-25 08:43:00
没必要用goto
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-05-25 11:07:00
看不出来他哪里有拆function或者处理err handling
作者: boss0405 (boss)   2018-05-25 12:09:00
我只是回前面有人说不要用goto啦,当然原po这样的用法是绝对不恰当的
作者: Schottky (顺风相送)   2018-05-25 14:26:00
用 goto 比较好的状况非常之少,虽然也是有些经典例子在本文中用 do-while 循环取代 goto 会更美丽我看到这样写感觉跟看到蟑螂在桌上爬一样不舒服........因为 do-while 会强迫分层次结构,goto 不需要层次任你胡乱交叉流程,很容易出事,所以经验叫我直觉避开 goto
作者: shadow0326 (非议)   2018-05-25 21:02:00
初学者别用goto就对了,讲一堆通常只会让他们混乱当他们经验丰富到足够理解为什么不能用goto之后,就可以开始考虑使用goto了
作者: hotrain13 (最幸運的人!!)   2018-05-26 09:28:00
少用goto,尤其是刚学的时候

Links booklink

Contact Us: admin [ a t ] ucptt.com