我仍然是一個初學者,這個程序給了我一些麻煩。一切工作正常,直到它計算作爲陣列等級[]的元素的輸入值的平均值。我的程序不會取平均輸入數組元素
輸出結果是一張表格,列出了每個學生輸入成績旁邊的學生編號1至5。 我可以顯示學生人數和成績,但程序似乎無法正常計算平均值。請幫忙?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float grade[5];
int n;
for(n=1; n<=5; n++){
printf("Enter grade %d between 0 and 100: ",n);
scanf("%f", &grade[n]);
}
printf("\nStudent\t\tGrade\n");
for(n=1; n<=5; n++){
printf("%d\t\t%.1f\n\n",n ,grade[n]);
}
printf("--------------------\n");
float avg = (grade[0] + grade[1] + grade[2] + grade[3] + grade[4])/5;
printf("Average Grade:\t%.1f", avg);
}
數組下標爲'浮子級[5];'0至4運行,而不是1至5。因此,你寫出你的陣列中的邊界時掃描和打印,從而導致不確定的行爲。你的平均值使用了一個未初始化的變量('grade [0]')。你應該檢查'scanf()'的返回值,以確保你每次都得到實際的數據。 – 2014-10-06 20:49:18