循环scanf问题,尝试几次后崩溃

时间:2018-11-26 07:26:57

标签: c loops for-loop scanf

因此,我试图制作一个使用数组输入成绩的程序,这是主循环。问题在于它成功地询问了输入,但是在第5个学生,第1个主题之后,它崩溃了,我在哪里出错了?

当studloop = 4时崩溃开始; gradloop = 2

GetStreamWithImageRotatedForExternalStorage

2 个答案:

答案 0 :(得分:1)

好吧,既然您要存储5个学生,每个学生要存储7个年级,那么这个:

float data[4][7];

应该是

float data[5][7];

答案 1 :(得分:0)

C使用0-based array indexing,因此对于定义为

的数组
float data[4][7];

循环条件

 for(studLoop = 0; studLoop < 5; studLoop++)

off by one。应该是

 for(studLoop = 0; studLoop < 4; studLoop++)

同样适用于for(gradLoop = 1; gradLoop < 7; gradLoop++),初始索引值应以0开头。


评论后的修订:

根据要求,为5个学生提供7个年级,应像

一样定义

float data[5][7];
             ^^^------------------------------ number of grades
          ^^^--------------------------------- number of students

然后,对于用法,学生的有效索引将是data[0]data[4],对于每个学生,成绩持有者的评分将从data[i][0]到{{1} },其中data[i][6]