0

手伝ってくれませんか?このコードを実行すると正常に動作しますが、最後に実行時エラーが発生しました。私のコードは、変数グレードの周りのスタックが壊れているようなメッセージをデバッグすると、完全に実行されます。

#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

2 に答える 2

4

あなたの for ループは 0 から 4 まで進んでいますfor (i=0;i<4;i++)。それ以外の場合は、配列の範囲外になります。

于 2013-09-22T23:38:38.350 に答える