鱼C论坛

 找回密码
 立即注册
查看: 562|回复: 1

结构体

[复制链接]
发表于 2021-12-24 13:49:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】编写一个输入函数,输入若干个学生的个人信息(包括学号、姓名、三门课的成绩);一个统计函数,统计每个学生的平均分并输出结果(包括学号、姓名和平均分);一个统计函数,统计每门课程的平均分,并输出统计结果,在主函数中调用输入函数输入信息,再分别调用统计每个学生平均分和每门课程平均分的函数。
【输入形式】第一行输入学生数n,后面依次输入每个学生的信息,每个学生一行
【输出形式】每位学生的平均分(每位学生一行)和每门课程(每门课程一行)平均分,保留两位小数, 数据之间以空格分开。
【样例输入】
2
101  李明 67 86 91
102  张丽 77 81 79
【样例输出】
101 李明 81.33
102 张丽 79.00
72.00 83.50 85.00
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-24 14:24:25 From FishC Mobile | 显示全部楼层
  1. #include <stdio.h>

  2. typedef struct{
  3.     float a, b, c;
  4. }results;

  5. typedef struct{
  6.     int id;
  7.     char name[20];
  8.     results res;
  9. }students;

  10. void input(students arr[], int n){
  11.     for(int i = 0; i < n; i++){
  12.         scanf("%d%s%f%f%f", &arr[i].id, arr[i].name, &arr[i].res.a, &arr[i].res.b, &arr[i].res.c);
  13.     }
  14. }

  15. void output(students arr[], int n){
  16.     float a, b, c = a = b = 0;
  17.     for(int i = 0; i < n; i++){
  18.         a += arr[i].res.a;
  19.         b += arr[i].res.b;
  20.         c += arr[i].res.c;
  21.         printf("%d %s %.2f\n", arr[i].id, arr[i].name, (arr[i].res.a + arr[i].res.b + arr[i].res.c) / 3);
  22.     }
  23.     printf("%.2f %.2f %.2f", a/n, b/n, c/n);
  24. }

  25. int main()
  26. {
  27.     int n;
  28.     scanf("%d", &n);
  29.     students arr[n];
  30.     input(arr, n);
  31.     output(arr, n);
  32.     return 0;
  33. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表