因此,我试图制作一个使用数组输入成绩的程序,这是主循环。问题在于它成功地询问了输入,但是在第5个学生,第1个主题之后,它崩溃了,我在哪里出错了?
当studloop = 4时崩溃开始; gradloop = 2
GetStreamWithImageRotatedForExternalStorage
答案 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]
。