我仍然是一个初学者,这个程序给了我一些麻烦。一切工作正常,直到它计算作为阵列等级[]的元素的输入值的平均值。我的程序不会取平均输入数组元素
输出结果是一张表格,列出了每个学生输入成绩旁边的学生编号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