m0_75017431 2022-11-24 17:33 采纳率: 100%
浏览 41
已结题

结构体数组及结构体数组成员的访问方法

有4个学生,每个学生的信息包括学号、姓名、3门课程(数学、物理、计算机)的成绩,如下表所示:
学号
姓名
数学
物理
计算机
1001
Wang li
93
89
87
1002
Li shan
85
80
78
1003
Zhao min
65
70
60
1004
Ma yun
77
70
83
(1) 从键盘上输入4个学生的上述信息(要有提示性语句);
(2) 计算每个学生的平均成绩;
(3) 输出各位同学的学号、姓名、数学、物理、计算机成绩和平均成绩;
(4) 输出平均成绩最高的同学的学号、姓名、数学、物理、计算机成绩和平均成绩。

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-11-24 17:34
    关注

    定义个学生结构,然后定义学生数组,逐个输入再求值

    #include <stdio.h>
    
    typedef struct _student
    {
        int id;
        char name[20];
        float score[3];
        float avg;
    }student;
    
    void input(student *s,int n)
    {
        for(int i=0;i<n;i++)
        {
            printf("请输入第%d个学生的学号:",i+1);
            scanf("%d",&s[i].id);
            printf("请输入第%d个学生的姓名:",i+1);
            getchar();
            gets(s[i].name);
            printf("请输入第%d个学生的数学成绩:",i+1);
            scanf("%f",&s[i].score[0]);
            printf("请输入第%d个学生的物理成绩:",i+1);
            scanf("%f",&s[i].score[1]);
            printf("请输入第%d个学生的计算机成绩:",i+1);
            scanf("%f",&s[i].score[2]);
            s[i].avg = (s[i].score[0] + s[i].score[1] + s[i].score[2])/3;
        }
    }
    
    void output(student *s,int n)
    {
        printf("%-10s%-22s%-10s%-10s%-10s%-10s\n","学号","姓名","数学","物理","计算机","平均分");
        for(int i=0;i<n;i++)
            printf("%-10d%-22s%-10.1f%-10.1f%-10.1f%-10.1f\n",s[i].id,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].avg);
    }
    
    void getHigh(student *s,int n)
    {
        int max = 0;
        for(int i=1;i<n;i++)
            if(s[i].avg > s[max].avg)
                max = i;
        printf("最高分学生信息为:");
        printf("学号: %d\n",s[max].id);
        printf("姓名: %s\n",s[max].name);
        printf("数学: %.1f\n",s[max].score[0]);
        printf("物理: %.1f\n",s[max].score[1]);
        printf("计算机: %.1f\n",s[max].score[2]);
        printf("平均分: %.1f\n",s[max].avg);
    }
    
    int main()
    {
        student stu[4];
        input(stu,4);
        output(stu,4);
        getHigh(stu,4);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答