奖学金发放---c语言

#include <stdio.h>
typedef struct winners

{

    char name[20];

    int finalScore;

    int classScore;

    char work;

    char west;

    int paper;

    int scholarship;

} WIN;
int main()
{
	printf("Input n:");
	int n,i,j,k;
	WIN a[10];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("Input name:");
		scanf("%s",&a[i].name);
		printf("Input final score:");
		scanf("%d",&a[i].finalScore);
		printf("Input class score:");
		scanf("%d",&a[i].classScore);
		printf("Class cadre or not?(Y/N):");
		scanf(" %c",&a[i].work);
		printf("Students from the West or not?(Y/N):");
		scanf(" %c",&a[i].west);
		printf("Input the number of published papers:");
		scanf("%d",&a[i].paper);
		a[i].scholarship=0;
		if(a[i].finalScore>80&&a[i].paper>0)
		{
			a[i].scholarship+=8000;
		}
		if(a[i].finalScore>85&&a[i].classScore>80)
		a[i].scholarship+=4000;
		if(a[i].finalScore>90)
		a[i].scholarship+=2000;
		if(a[i].west=='Y'&&a[i].finalScore>85)
		a[i].scholarship+=1000;
		if(a[i].work=='Y'&&a[i].classScore>80)
		a[i].scholarship+=850;
		printf("name:%s,scholarship:%d\n",a[i].name,a[i].scholarship);
		}
	j=a[0].scholarship;
	k=0;
	for(i=1;i<n;i++)
	{
		if(j<a[i].scholarship)
		{
			j=a[i].scholarship;
			k=i;
		}
	}
	printf("%s get the highest scholarship %d\n",a[k].name,j);
	return 0;
}
题目内容:

某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,每项奖学金获取的条件分别如下:

1) 院士奖学金:期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生每人均可获得8000元;

2) 五四奖学金:期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生每人均可获得4000元;

3) 成绩优秀奖:期末平均成绩高于90分(>90)的学生每人均可获得2000元;

4) 西部奖学金:期末平均成绩高于85分(>85)的西部省份学生每人均可获得1000元;

5) 班级贡献奖:班级评议成绩高于80分(>80)的学生干部每人均可获得850元;

只要符合上述条件就可获得相应的奖项,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚明的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据(假设总有同学能满足获得奖学金的条件),请编程计算哪些同学获得的奖金总数最高。

结构体类型定义如下:

typedef struct winners

{

    char name[20];

    int finalScore;

    int classScore;

    char work;

    char west;

    int paper;

    int scholarship;

} WIN;

函数原型:void Addup(WIN stu[], int n);

函数原型:int FindMax(WIN student[], int n);

程序运行结果示例:

Input n:4↙

Input name:YaoMing↙

Input final score:87↙

Input class score:82↙

Class cadre or not?(Y/N):Y↙

Students from the West or not?(Y/N):N↙

Input the number of published papers:0↙

name:YaoMing,scholarship:4850

Input name:ChenRuiyi↙

Input final score:88↙

Input class score:78↙

Class cadre or not?(Y/N):N↙

Students from the West or not?(Y/N):Y↙

Input the number of published papers:1↙

name:ChenRuiyi,scholarship:9000

Input name:LiXin↙

Input final score:92↙

Input class score:88↙

Class cadre or not?(Y/N):N↙

Students from the West or not?(Y/N):N↙

Input the number of published papers:0↙

name:LiXin,scholarship:6000

Input name:ZhangQin↙

Input final score:83↙

Input class score:87↙

Class cadre or not?(Y/N):Y↙

Students from the West or not?(Y/N):N↙

Input the number of published papers:1↙

name:ZhangQin,scholarship:8850

ChenRuiyi get the highest scholarship 9000

输入学生人数提示:"Input n:"

输入学生姓名提示:"Input name:"

输入学生期末平均成绩提示:"Input final score:"

输入学生班级评议成绩提示:"Input class score:"

输入是否为学生干部提示:"Class cadre or not?(Y/N):"

输入是否为西部学生提示:"Students from the West or not?(Y/N):"

输入发表文章数量提示:"Input the number of published papers:"

输入格式:

    输入学生人数:"%d"

    输入学生姓名:"%s"

    输入学生成绩:"%d"

    输入是否为学生干部:" %c" (注意:%c前面有一个空格)

    输入是否为西部学生:" %c" (注意:%c前面有一个空格)

    输入发表文章数量: "%d"

输出格式:

     输出学生获得的奖学金:  "name:%s,scholarship:%d\n"

     输出获得奖学金总数最高的学生:"%s get the highest scholarship %d\n"

#include <stdio.h>
typedef struct winners

{

    char name[20];

    int finalScore;

    int classScore;

    char work;

    char west;

    int paper;

    int scholarship;

} WIN;
int main()
{
	printf("Input n:");
	int n,i,j,k;
	WIN a[10];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		printf("Input name:");
		scanf("%s",&a[i].name);
		printf("Input final score:");
		scanf("%d",&a[i].finalScore);
		printf("Input class score:");
		scanf("%d",&a[i].classScore);
		printf("Class cadre or not?(Y/N):");
		scanf(" %c",&a[i].work);
		printf("Students from the West or not?(Y/N):");
		scanf(" %c",&a[i].west);
		printf("Input the number of published papers:");
		scanf("%d",&a[i].paper);
		a[i].scholarship=0;
		if(a[i].finalScore>80&&a[i].paper>0)
		{
			a[i].scholarship+=8000;
		}
		if(a[i].finalScore>85&&a[i].classScore>80)
		a[i].scholarship+=4000;
		if(a[i].finalScore>90)
		a[i].scholarship+=2000;
		if(a[i].west=='Y'&&a[i].finalScore>85)
		a[i].scholarship+=1000;
		if(a[i].work=='Y'&&a[i].classScore>80)
		a[i].scholarship+=850;
		printf("name:%s,scholarship:%d\n",a[i].name,a[i].scholarship);
		}
	j=a[0].scholarship;
	k=0;
	for(i=1;i<n;i++)
	{
		if(j<a[i].scholarship)
		{
			j=a[i].scholarship;
			k=i;
		}
	}
	printf("%s get the highest scholarship %d\n",a[k].name,j);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值