首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道c语言的题,小弟我初学想有个参考

2012-04-04 
一道c语言的题,我初学想有个参考已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中.

一道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);

}

热点排行