请问这是什么问题,为什么进入死循环
还有一个问题,就是为什么这样写不是得到五次“请输入一个学生成绩”,一次一行,而是只有三次,而且两次都是“请输入一个学生成绩:请输入一个学生成绩:”,是我“Scanf”用错了吗?
请大佬指教
有疑问加站长微信联系(非本文作者)

请问这是什么问题,为什么进入死循环
还有一个问题,就是为什么这样写不是得到五次“请输入一个学生成绩”,一次一行,而是只有三次,而且两次都是“请输入一个学生成绩:请输入一个学生成绩:”,是我“Scanf”用错了吗?
请大佬指教
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
第一个问题,把 k i 都改成 int,否则如果定义 k 为 uint,第一次循环的时候,k = -1 就会溢出。 第二个问题,把 fmt.Scanf 改成 fmt.Scanln
您好,谢谢解答,第一个溢出的问题弄明白了,但是第二个问题我还是不明白为什么,我之前也用过“fmt.Scanln”,可以达到我想要的效果,但是为什么“fmt.Scanf”就不行了呢?
Scanf从标准输入扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。 此处的空白符不包括换行符。程序把换行符也当成了一个输入
我可以这样理解吗,如果想用"scanf"来输入五个学生的成绩,就要写成“fmt.scanf("%f %f %f %f %f", &score1, &score2, &score3, &score4, &score5)”来一次性输入,而不能使用“for”循环。我写的这个程序有两次结果都是“请输入一个学生成绩:“回车””,对吗?