Problem A. L08-02统计学生数据(结构体+数组)---初学简单吧(小组作业完结撒花~)

有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求编程输出3门课平均成绩以及总分最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。

输入

10个学生的 学号 姓名 课程1成绩 课程2成绩 课程3成绩

输出

(以下数据均保留两位小数) 课程1平均成绩 课程2平均成绩 课程3平均成绩

学号 姓名 课程1成绩 课程2成绩 课程3成绩 (总分最高的学生数据)

样例

标准输入复制文本
11 刘一 99 99 99
12 刘二 100 100 100
13 张三 50 50 50
14 刘四 60 60 60
15 刘五 70 70 70
16 刘六 99 99 99
17 刘七 100 80 100
18 刘八 50 50 50
19 刘九 60 60 60
20 刘十 70 70 70
标准输出复制文本
75.80 73.80 75.80
12 刘二 100.00 100.00 100.00 300.00

解题思路:
1、很明显,创建一个学生结构体,包含学号,姓名,三科分数。

2、再创一个平均分数组,用来统计所有人每一科的分数/3,从而得到平均分。

3、再用sum记录每个人的总分,然后max循环遍历找到最高总分同学的下标,再结构体输出此人的全部信息。

ps:过程有点繁琐,但做题过程中思路要清楚,敲时要细心!

#include <stdio.h>
#define N 10
struct Student
{
	char num[10];
	char name[10];
	double score[3];
}student[N]; 
int main()
{
	int i,j,k;
	double sum = 0.0,max = 0.0,pjf[N];
		for(i = 0;i < N;i++)
	{
		scanf("%s %s %f %f %f",student[i].num,student[i].name,&student[i].score[0],&student[i].score[1],&student[i].score[2]);
	}
	
	//求平均分
	for(i = 0;i < N;i++)
	{
			pjf[0]+= student[i].score[0]/N;
			pjf[1]+= student[i].score[1]/N;
			pjf[2]+= student[i].score[2]/N;
 
		}
	
	//找最高分的同学
	for(i = 0;i < N;i++)
	{
		sum = 0.0;//清零
		for(j = 0;j < 3;j++)
		{
			sum += student[i].score[j];
		}
		if(sum > max)
		{
			max=sum;
			k = i;
		}
	}	
	printf("%.2lf %.2lf %.2lf\n",pjf[0],pjf[1],pjf[2]);
	printf("%s %s %.2f %.2f %.2f %.2f",student[k].num,student[k].name,student[k].score[0],student[k].score[1],student[k].score[2],max);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值