2013-09-22 25 views
0

你能幫我嗎?我運行這段代碼後工作正常,但最後我得到了運行時錯誤。我的代碼在我調試的時候運行得非常好,我得到的消息就像變量等級被損壞一樣。C程序設計錯誤堆棧變量級別

#include<stdio.h> 
#define N 4 
int main() 
{ 
    int i , j=1,location,x=1; 
    float grade[N] , total = 0 , average , max; 
    for(i=0;i<=4;i++) 
    { 
    printf("\nPlease enter grade : "); 
    scanf("%f",&grade[i]); 
    total = total+grade[i]; 
    } 
    system("cls"); 
    printf("\nStudent  Grade"); 
     for(i=0;i<=N;i++) 
     { 
     printf("\n%d   %.1f",j,grade[i]); 
     j++; 
     } 
    average = ((total/500) * 100); 
    printf("\n--------------------"); 
    printf("\nAverage Grade: %.2f ",average); 
    for(i=0;i<=4;i++) 
    { 
     if(grade[i] > average) 
     { 
      location=x+i; 
      max = grade[i]; 
      printf("\n\nstudent #%d is above the average and value is %.1f",location ,max); 
     } 
    } 
    getch(); 
} 

回答

4

你的for循環從0到4,它應該是for (i=0;i<4;i++),否則你會超出數組的範圍。

+0

這是最好的,得到N更有意義的名稱,如MAX_GRADES,並用它在for循環中:'爲( i = 0; i

+0

我同意羅伯特。 – jodag

1

你所有我< = 4應該是我< 4或更改N到5