鱼C论坛

 找回密码
 立即注册
查看: 651|回复: 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 | 显示全部楼层
#include <stdio.h>

typedef struct{
    float a, b, c;
}results;

typedef struct{
    int id;
    char name[20];
    results res;
}students;

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

void output(students arr[], int n){
    float a, b, c = a = b = 0;
    for(int i = 0; i < n; i++){
        a += arr[i].res.a;
        b += arr[i].res.b;
        c += arr[i].res.c;
        printf("%d %s %.2f\n", arr[i].id, arr[i].name, (arr[i].res.a + arr[i].res.b + arr[i].res.c) / 3);
    }
    printf("%.2f %.2f %.2f", a/n, b/n, c/n);
}

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 01:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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