一道c语言的题,我初学想有个参考
已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中.请编写函数fun,函数功能是:找出成绩最低和最高的学生记录及求出学生的平均成绩.提示:#define N 100
struct student
{char stu No;
float stu score;
}a[N]
[解决办法]
仅当参考
fun() {
float minScore = a[0].stuscore;
float maxScore = a[0].stuscore;
float sum = a[0].stuscore;
int minIndex[N];
int maxIndex[N];
int minCount = 0;
int maxCount = 0;
minIndex[minCount] = 0;
maxIndex[maxCount] = 0;
for(int i=1; i <N; i++) {
sum += a[i].stuscore;
if (a[i].stuscore <minScore) {
minScore = a[i].stuscore;
minCount = 0;
minIndex[minCount] = i;
} else if (a[i].stuscore == minScore) {
minCount++;
minIndex[minCount] = i;
}
if (a[i].stuscore> maxScore) {
maxScore = a[i].stuscore;
maxCount = 0;
maxIndex[maxCount] = i;
} else if (a[i].stuscore == maxScore) {
maxCount++;
maxIndex[maxCount] = i;
}
}
printf( "最低分:%f\n ", minScore);
printf( "成绩最低的学生有:\n ");
for (int i=0; i <=minCount; i++) {
printf( "学号:%c, 成绩:%f\n ", a[minIndex[i]].stuNo, a[minIndex[i]].stuscore);
}
printf( "最高分:%f\n ", maxScore);
printf( "成绩最高的学生有:\n ");
for (int i=0; i <=maxCount; i++) {
printf( "学号:%c, 成绩:%f\n ", a[maxIndex[i]].stuNo, a[maxIndex[i]].stuscore);
}
printf( "平均分:%f\n ", sum/N);
}