设某班共有 50 名学生,评定某门课程的奖学金,按照规定超过全班平 均成绩 10%者发给一等奖,超过全班平均成绩 5%者发给二等奖,编写程序,输 出学生学号、成绩和奖学金等级。
五十名太多了,我写五名吧,然后你拿源码加数据就行了
#include<stdio.h>
const int n = 5;
struct Student
{
int sno;
float score;
};
Student S[n] =
{ 1001,80.0,
1002,80.1,
1003,80.9,
1004,90.0,
1005,96.0};
void sort(Student S[])
{
float aver = 0,sum=0;
for (int i = 0; i < n; i++)
{
sum += S[i].score;
}
aver = sum / n;
printf("平均成绩为:%.2f\n", aver);
for (int i = 0; i < n; i++)
{
if (S[i].score > aver * 1.1) { printf("学号 %d,成绩 %.2f,获得一级奖学金", S[i].sno, S[i].score); printf("\n"); }
else if(S[i].score>=aver*1.05){ printf("学号 %d,成绩 %.2f,获得二级奖学金", S[i].sno, S[i].score); printf("\n");
}
else {printf("学号 %d,成绩 %.2f,没有奖学金", S[i].sno, S[i].score); printf("\n");
}
}
}
int main()
{
sort(S);
}