有10个学生,每个学生的数据包括学号、姓名、三门课成绩,输入10个学生数据要求输出三门课程总平均成绩,以及最高分学生数据

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<malloc.h>
    struct Student
    {
    	int num;
    	char name[40];
    	int score[3];
    	float average;
    }stu[10]; 
    
    int main()
    {
    	void high(struct Student stu[]);
    	
    	int i, j;
    	float sum = 0;
    	for (i = 0; i<3; i++)
    	{
    		printf("学生NO.:");
    		scanf("%d", &stu[i].num);
    		printf("姓名:");
    		scanf("%s", &stu[i].name);
    		for (j = 0; j<10; j++)
    		{
    			printf("学生:[%d].成绩:[%d]:", i, j);
    			scanf("%f", &stu[i].score[j]);
    		}
    		printf("\n");
    	}
    	//各学生平均成绩
    	for (i = 0; i < 10; i++)
    	{
    		for (j = 0; j < 3; j++)
    		{
    			sum = sum + stu[i].score[j];
    		}
    		stu[i].average = sum / 3;
    		sum = 0;
    		printf("学号:%d 平均成绩:%f\n", stu[i].num,stu[i].average);
    	}
    
    	//每门课平均成绩
    	float average1[3];//定义一个装3门课的平均成绩的数组
    
    	sum = 0;
    
    	for (j = 0; j<3; j++)
    	{
    		for (i = 0; i<10; i++)
    		{
    			sum = sum + stu[i].score[j];
    		}
    
    		average1[j] = sum / 10;
    
    		sum = 0;
    	}
    
    	for (i = 0; i<3; i++)//输出各门课的平均成绩
    	{
    		printf("第%d门课的平均成绩\n",i+1)  ;
    
    		printf("%f", average1[i]);
    		printf("\n");
    	}
    	high(stu);
    	return 0;
    }
    
    void high(struct Student stu[])
    {
    	int i, j;
    	int t = 0;
    	for (i = 0; i < 10; i++)
    	{
    		float max = stu[i].average;
    		if (max < stu[i].average)
    		{
    			max = stu[i].average;
    		}
    		t = i;
    	}
    
    	printf("最高分学生数据为:");
    	printf("学号%d  姓名%s\t", stu[t].num, stu[t].name);
    	printf("成绩:\n");
    	for (j = 0; j < 3; j++)
    	{
    		printf("%d\t", stu[t].score[j]);
    		printf("\n");
    
    	}
    }
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值