请问这是什么问题,为什么进入死循环
![TIM图片20190120111732.png](https://static.studygolang.com/190120/1ee1ca5c20c3bb68bf25c6a2552cab9d.png)![TIM图片20190120111739.png](https://static.studygolang.com/190120/37d6a74cadaf428f390f451e9bc5f8bf.png)
还有一个问题,就是为什么这样写不是得到五次“请输入一个学生成绩”,一次一行,而是只有三次,而且两次都是“请输入一个学生成绩:请输入一个学生成绩:”,是我“Scanf”用错了吗?
![TIM图片20190120112039.png](https://static.studygolang.com/190120/b9b6ea242fd033f006fe32e62f501559.png)![TIM图片20190120112042.png](https://static.studygolang.com/190120/0ddd572df3140f7d198f55a2fdd2b39e.png)
请大佬指教
我可以这样理解吗,如果想用"scanf"来输入五个学生的成绩,就要写成“fmt.scanf("%f %f %f %f %f", &score1, &score2, &score3, &score4, &score5)”来一次性输入,而不能使用“for”循环。我写的这个程序有两次结果都是“请输入一个学生成绩:“回车””,对吗?
#4
更多评论
第一个问题,把 k i 都改成 int,否则如果定义 k 为 uint,第一次循环的时候,k = -1 就会溢出。
第二个问题,把 fmt.Scanf 改成 fmt.Scanln
#1
您好,谢谢解答,第一个溢出的问题弄明白了,但是第二个问题我还是不明白为什么,我之前也用过“fmt.Scanln”,可以达到我想要的效果,但是为什么“fmt.Scanf”就不行了呢?
#2