要求用 input函数输入 10 个学生数据;用average 函数求总平均分;用 max 函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。

3、有 10个学生,每个学生的数据包括学号、姓名、3 门课的成绩。从键盘输入 10 个学生数据,要求打印出3 门课总平成绩,以及最高分的学生的数据(包括学号、姓名、3 门课的成绩、平均分数)要求用 input函数输入 10 个学生数据;用average 函数求总平均分;用 max 函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。
代码:
学生数据类型结构体:

#define S 10
struct student {
	char num[10],name[20];//学号、姓名
	int score[3];//3 门课的成绩
	float avg;//平均分
};

所需要的函数:

void input(student *stu);//输入
void avg(student *stu);//平均分
student max(student *stu);//最高分
int main();
int main(){ 
	student  stu[S];
    printf("请输入学生信息:");
    input(stu);//输入
    avg(stu);//求平均分
    printf("最高分学生的信息为:\n");
    student stu1 = max(stu);
	printf("num:%s\n",stu1.num);
	printf("name:%s\n",stu1.name);
    printf("score1:%d \t score2:%d \t score3:%d\n",
               stu1.score[0],stu1.score[1],stu1.score[2]);
	printf("avg:%.2f\n",stu1.avg); 
}
void input(student *stu){
	for(int i=0;i<S;i++){
	   printf("第%d学生信息:\n",i+1);
	   printf("num:");
	   scanf("%s",stu[i].num);
	   printf("name:"); 
	   scanf("%s",stu[i].name);
	   printf("score:\n");
	   for(int j=0;j<3;j++){
	   	 scanf("%d",&stu[i].score[j]);//这里输入每个学生的三门成绩
	   }   
   }
}  
void avg(student *stu){
	int sum = 0; 
	for(int i=0;i<3;i++){  
		 for(int j=0;j<3;j++){
		 	 sum+=stu[i].score[j];
		 } 
		  stu[i].avg = sum/3.0;
	} 
}
student max(student *stu){ 
    float max = stu[0].avg;
    int flag = 0; //记录分数最高学生的下标
	for(int i=1;i<S;i++){
		if(max<stu[i].avg){
		 flag = i;
		 max = stu[i].avg;
		}  
	} 
	return stu[flag];
}

运行效果:
运行效果:
【2019-西北师范821-C部分】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小源同学r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值