C题目:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩。

10个学生,每个学生的数据包括学号、姓名、3门课的成绩。从键盘输入10个学生数据,要求输出3门课成绩和平均成绩,以及平均成绩最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
要求:
(1)定义一个结构体类型Student,描述学生的信息。
(2)定义一个void input(struct Student *p,int n)函数,输入n个学生的数据,存放到结构体指针变量p所指向的结构体数组中,n表示学生人数。
(3)定义一个float average(struct Student *p,int n)函数,求总平均分,返回该总平均分。其中,p指向有n个学生数据的结构体数组,n表示学生人数。
(4)定义一个void  max(struct Student *p,int n)函数,在指针变量p指向的结构体数组中找出平均成绩最高分的学生数据,并输出该学生的各项数据,n表示学生人数。
(5)定义一个void  print(struct Student *p,int n)函数,输出指针变量p指向的结构体数组的全部数组元素的各项成员的值,n表示学生人数。
(6)定义main()函数,定义结构体数组stud[10],分别调用input函数、average函数、print函数、max函数。
代码:
#include <stdio.h>
struct Student {
    char num[10];
    char name[20];
    float score[3];
    float average;
};

void input(struct Student *p, int n) {
    int i, j;
    for (i = 0; i < n; i++) {
        printf("\n输入学生%d的数据:\n", i + 1);
        printf("学号(最多9个字符):");
        scanf("%s", p->num);
        printf("姓名(最多19个字符):");
        scanf("%s", p->name);
        for (j = 0; j < 3; j++) {
            printf("成绩%d:", j + 1);
            scanf("%f", &(p->score[j]));
        }
        // 计算该学生的平均成绩
        p->average = 0;
        for (j = 0; j < 3; j++) {
            p->average += p->score[j];
        }
        p->average /= 3;

        p++;
    }
}

float average(struct Student *p, int n) {
    float sum = 0;
    int i;
    for (i = 0; i < n; i++) {
        sum += p->average;
        p++;
    }
    return sum / n;
}

void max(struct Student *p, int n) {
    struct Student *p1;
    int i, maxi = 0;
    float max_avg = p->average;

    for (i = 1; i < n; i++) {
        p++;
        if (p->average > max_avg) {
            max_avg = p->average;
            maxi = i;
        }
    }

    p1 = p - n + maxi;

    printf("\n平均成绩最高分的学生:\n");
    printf("学号:%s\n", p1->num);
    printf("姓名:%s\n", p1->name);
    for (i = 0; i < 3; i++) {
        printf("成绩%d:%6.2f\n", i + 1, p1->score[i]);
    }
    printf("平均成绩:%6.2f\n", p1->average);
}

void print(struct Student *p, int n) {
    int i, j;
    printf("\n学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
    for (i = 0; i < n; i++) {
        printf("%s\t%s\t", p->num, p->name);
        for (j = 0; j < 3; j++) {
            printf("%6.2f\t", p->score[j]);
        }
        printf("%6.2f\n", p->average);
        p++;
    }
}

int main() {
    struct Student stud[10];
    input(stud, 10);
    print(stud, 10);
    printf("总平均分:%6.2f\n", average(stud, 10));
    max(stud, 10);
    return 0;
}
结果:

输入学生1的数据:
学号(最多9个字符):01
姓名(最多19个字符):a1
成绩177
成绩265
成绩315

输入学生2的数据:
学号(最多9个字符):02
姓名(最多19个字符):a2
成绩186
成绩248
成绩335

输入学生3的数据:
学号(最多9个字符):03
姓名(最多19个字符):a3
成绩187
成绩294
成绩375

输入学生4的数据:
学号(最多9个字符):04
姓名(最多19个字符):a4
成绩168
成绩295
成绩373

输入学生5的数据:
学号(最多9个字符):05
姓名(最多19个字符):a5
成绩163
成绩252
成绩341

输入学生6的数据:
学号(最多9个字符):06
姓名(最多19个字符):a6
成绩146
成绩213
成绩379

输入学生7的数据:
学号(最多9个字符):07
姓名(最多19个字符):a7
成绩178
成绩291
成绩337

输入学生8的数据:
学号(最多9个字符):08
姓名(最多19个字符):a8
成绩187
成绩296
成绩318

输入学生9的数据:
学号(最多9个字符):09
姓名(最多19个字符):a9
成绩198
成绩239
成绩376

输入学生10的数据:
学号(最多9个字符):10
姓名(最多19个字符):a10
成绩155
成绩266
成绩344

学号    姓名    成绩1   成绩2   成绩3   平均成绩
01      a1       77.00   65.00   15.00   52.33
02      a2       86.00   48.00   35.00   56.33
03      a3       87.00   94.00   75.00   85.33
04      a4       68.00   95.00   73.00   78.67
05      a5       63.00   52.00   41.00   52.00
06      a6       46.00   13.00   79.00   46.00
07      a7       78.00   91.00   37.00   68.67
08      a8       87.00   96.00   18.00   67.00
09      a9       98.00   39.00   76.00   71.00
10      a10      55.00   66.00   44.00   55.00
总平均分: 63.23

平均成绩最高分的学生:
学号:02
姓名:a2
成绩186.00
成绩248.00
成绩335.00
平均成绩: 56.33

Process returned 0 (0x0)   execution time : 73.527 s
Press any key to continue.
posted @   昵-称  阅读(284)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
  1. 1 世间美好与你环环相扣 柏松
  2. 2 真的爱你 Beyond
  3. 3 若月亮没来 (Live版) 杨宗纬,宝石Gem,王宇宙Leto
  4. 4 起风了 买辣椒也用券
  5. 5 沦陷 JuggShots
  6. 6 晚风告白 奶嘴儿呦
  7. 7 风吹一夏 (恋爱版) DP龙猪,Swei水,Rays
  8. 8 疯癫少女 刀酱
  9. 9 不得不爱 刀酱
  10. 10 暮色回响(cover:吉星出租)(剪辑版) 陈子渝(虚拟歌手)
  11. 11 幹物女(WeiWei) 封茗囧菌
  12. 12 须尽欢(DJ弹鼓版) 沐泽
  13. 13 须尽欢(浓). LLAY俊
  14. 14 须尽欢(DJ弹鼓版) 沐泽
  15. 15 喜欢你 G.E.M.邓紫棋
  16. 16 掌缘生灭(完整版) 圣光灵主
  17. 17 誓缘 石天天
  18. 18 逆魂 GAI周延
  19. 19 心之火 DJ铁柱
须尽欢(浓). - LLAY俊
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
点击右上角即可分享
微信分享提示
点击网页任意位置可播放音乐