结构与结构数组作业

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

#include<stdio.h>
struct student
{
 int num;
 char name[20];
 float score[3];
}stu[10];
int ave(struct student stu[])
{
 float ave[3];
 float sum;
 for (int j = 0; j < 3; j++)
 {
  sum = 0;
  for (int i = 0; i < 10; i++)
  {
   sum += stu[i].score[j];
  }
  ave[j] = sum / 10;
 }
 for (int j = 0; j < 3; j++)
 {
  printf("第%d门课程的平均成绩为:%.3f\n",j+1, ave[j]);
 }
 puts("*****************************************************");
 return 0;
}
void find(struct student stu[])
{
 int i, j;
 float sum;
 float ave[10];
 for (i = 0; i < 10; i++)
 {
  sum = 0;
  for (j = 0; j < 3; j++)
  {
   sum += stu[i].score[j];
  }
  ave[i] = sum / 3;
 }
 for (i = 0; i < 10; i++)
 {
  printf("第%d个学生的平均分为:%.2f\n", i + 1, ave[i]);
 }
 int t = 0;
 int max = 0;
 for (i = 0; i < 10; i++)
 {
  if (ave[max] < ave[i])
  {
   max = i;
   t = i;
  }
 }
 printf("最高分的学生数据为:%d,%s,%.2f,%.2f,%.2f,%.2f", stu[t].num, stu[t].name, stu[t].score[0], stu[t].score[1], stu[t].score[2], ave[t]);
}
void main()
{
 printf("请输入十名学生的信息:\n");
 for (int i = 0; i < 10; i++)
 {
  scanf_s("%d", &stu[i].num);
  scanf_s("%s", stu[i].name);
  for (int j = 0; j < 3; j++)
  {
   scanf_s("%f", &stu[i].score[j]);
  }
 }
 puts("************************************");
 ave(stu);
 find(stu);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值