桐桐班级期末考试结束后要根据成绩及这学期的表现发放奖学金,具体奖学金发放标准如下:
1) 学习成绩奖:一等奖(¥2000):期末平均成绩高于 95 分,并且班级评议成绩高于 90 分; 二等奖(¥1500):期末平均成绩高于 90 分,并且班级评议成绩高于 85 分; 三等奖(¥1000):期末平均成绩高于 85 分,并且班级评议成绩高于 80 分; 鼓励奖(¥500):期末平均成绩高于 85 分或者班级评议成绩高于 80 分。 2) 积极进取奖:参加各类竞赛获得一等奖以上奖项,每次奖励 ¥800;获得二等奖,每次奖励 ¥500;获得三等奖,每次奖励 ¥300。 3) 班级贡献奖:班级评议成绩高于 80 分的班干部可以获得。
请编写程序,输入学生各项成绩后输出应获得的奖学金总额。
每位同学都有姓名、期末平均成绩、班级评议成绩、是否班干部以及参加各类竞赛的获奖情况多种信息,我们可以使用结构体类型来比较直观且有效的存储和处理这些学生信息:
struct student{
char name[40]; //学生姓名
float score; //期末平均成绩
float cScore; //班级评议成绩
int cadre; //是否班干部(1:是 0:不是)
int award1; //竞赛获得一等奖次数
int award2; //竞赛获得二等奖次数
int award3; //竞赛获得三等奖次数
long int money; //获得奖学金总额
};
struct student stu; //定义一个 student 结构体对象 stu
C语言代码清单1:输入学生信息,判断发放奖学金额度
#include <stdio.h>
#include <stdlib.h>
struct student{ //声明结构体student用于表示学生信息
char name[40]; //学生姓名
float score; //期末平均成绩
float cScore; //班级评议成绩
int cadre; //是否班干部(1:是 0:不是)
int award1,award2,award3; //竞赛获的三等奖次数
long int money; //获得奖学金总额
};
struct student stu; //定义一个student结构体对象stu
/*--主函数--*/
int main( )
{
printf("学生姓名:");
scanf("%s",stu.name);
printf("期末平均成绩:");
scanf("%f",&stu.score);
printf("班级评议成绩:");
scanf("%f",&stu.cScore);
printf("是否班干部(1:是 0:不是):");
scanf("%d",&stu.cadre);
printf("竞赛获得一等奖次数:");
scanf("%d",&stu.award1);
printf("竞赛获得二等奖次数:");
scanf("%d",&stu.award2);
printf("竞赛获得三等奖次数:");
scanf("%d",&stu.award3);
stu.money = stu.award1*800 + stu.award2*500 + stu.award3*300;
if(stu.score>95 && stu.cScore>90)
stu.money += 2000;
else
if(stu.score>90 && stu.cScore>85)
stu.money += 1500;
else
if(stu.score>85 && stu.cScore>80)
stu.money += 1000;
if(stu.cadre==1 && stu.cScore>80)
stu.money += 500;
printf("%s同学获得奖学金%ld元\n",stu.name,stu.money);
system("pause");
return 0;
}
运行结果:
学生姓名:liyuanyuan
期末平均成绩:91
班级评议成绩:85
是否班干部(1:是 0:不是):1
竞赛获得一等奖次数:2
竞赛获得二等奖次数:1
竞赛获得三等奖次数:1
liyuanyuan同学获得奖学金3900元