在最后一个循环之前崩溃

时间:2014-11-05 02:35:05

标签: c arrays loops

这是一个用于制作成绩的相对简单的程序。

我的程序在尝试完成最后一个循环时崩溃,特别是在最后一次中期输入时。这里有什么帮助吗?

#include <stdio.h>
#include <string.h>
#define ARRAYSIZE 2

int main(void)
{
   char studentID[ARRAYSIZE][10];
   int midterm[ARRAYSIZE];
   int fina[ARRAYSIZE];
   int i=0;
   double overall[ARRAYSIZE];
   for (i=0;i<ARRAYSIZE;i++)
   {
      printf("\nInput Student ID:");
      scanf("%s",&studentID[i][10]);
      printf("\nInput midterm score:");
      scanf("%d",&midterm[i]);
      printf("\nInput final score:");
      scanf("%d",&fina[i]);
      overall[i]=midterm[i]*0.3+fina[i]*0.7;
   }
   printf("\nStudent ID    MidTerm    Final    Overall\n");
   for (i=0;i<ARRAYSIZE;i++)
   {
      printf("%s%5d%5d%5f",studentID[i][10],midterm[i],fina[i],overall[i]);
   }
   return 0;
}

返回的过程是-1073741819(0xC0000005)。感谢。

2 个答案:

答案 0 :(得分:3)

错误在最终的printf语句中,特别是&#39; studentID [i] [10]&#39;在这里,您正在访问非法索引的元素(在您的情况下,0到9是合法的)

答案 1 :(得分:0)

请试试这个 //声明

int ARRAYSIZE=2;
char studentID[ARRAYSIZE][10];

//然后,您需要将字符串输入数组

int i;
for (i=0; i<ARRAYSIZE; i++) {
    scanf ("%s" , studentID[i]);

} //在oreder打印它们使用

for (i=0; i<ARRAYSIZE; i++) {
    printf ("%s" , studentID[i]);

}