C语言程序设计练习题 实验八 8-1

1.有6个学生,每个学生的数据包括学号、姓名、3门课的成绩,编写函数,实现功
能: (1) 从键盘输入学生信息,存入到一个结构体数组中:
(2)计算学生三门课程的平均成绩,并存入到结构体数组中:
(3)打印出每门课的班级平均成绩:
(4)打印出最高分的学生的数据(包括学号、姓名、3门课的成绩)。

#include<stdio.h>
typedef struct 
	{
		int num;
		char name[20];
		struct Grade
		{
			float g1,g2,g3;
		}b;
	}Student;
int main()
{
	void inputStudent(Student[]);	
	Student a[6];
    inputStudent(a);
    return 0;
 } 
 void inputStudent(Student a[])
 {	
    float max[3],sum[3],ave[6];
   	int i,j[3];
	for(i=0;i<6;i++)
	{
	printf("请输入第%d个学生的信息\n",i+1); 
	scanf("%d",&a[i].num);
	scanf("%s",&a[i].name);
	scanf("%f %f %f",&a[i].b.g1,&a[i].b.g2,&a[i].b.g3);
    }	
   for(i=0;i<5;i++)
    {
    	j[0]=0;
    	if(a[i].b.g1<a[i+1].b.g1)
    	{
		max[0]=a[i+1].b.g1;j[0]=i+1;}
    	if(a[i].b.g2<a[i+1].b.g2)
    	{
		max[1]=a[i+1].b.g1;j[1]=i+1;}
    	if(a[i].b.g3<a[i+1].b.g3)
    	{  
		max[2]=a[i+1].b.g1;j[2]=i+1;}
	}
	for(i=0;i<6;i++)
	{
		ave[i]=(a[i].b.g1+a[i].b.g2+a[i].b.g3)/3;
	}
	sum[0]=0;sum[1]=0;sum[2]=0;
	for(i=0;i<6;i++)
	{
		{sum[0]=sum[0]+a[i].b.g1;
		sum[1]=sum[1]+a[i].b.g2;
		sum[2]=sum[2]+a[i].b.g3;
		}
	}
    printf("===学生平均成绩===\n"); 
	for(i=0;i<6;i++)
	{printf("第%d位的平均成绩为%.2f\n",i+1,ave[i]);}
	printf("===学科平均成绩===\n"); 
	for(i=0;i<3;i++)
	{printf("第%d门的平均成绩为%.2f\n",i+1,(sum[i])/6);}
	printf("===各科第一名的信息===\n"); 		
	for(i=0;i<3;i++)
	{printf("第%d科\n",i+1);
	printf("学号:%d\n姓名:%s\n第一门成绩:%.2f\n第二门成绩:%.2f\n第三门成绩:%.2f\n",a[j[i]].num,a[j[i]].name,a[j[i]].b.g1,a[j[i]].b.g2,a[j[i]].b.g3); 
	}
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值