liMMSM 2021-12-18 11:35 采纳率: 50%
浏览 27
已结题

结构体问题 储存变量改变问题



```c++


/*有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。*/
#include<stdio.h>
struct Student
#define N 4                                                                                 //定义学生数量N为4
{
    char name[20];                                                                          //姓名
    int num;                                                                               //学号
    float score[3];                                                                        //语文,数学,英语三门课的成绩
    float aver;                                                                            //平均成绩
};


int main()
{
    int n,m;
    float f[20];
    void input(struct Student stu[]);                                                                                      //对两个函数进行声明
    struct Student stu[N],*p = stu;                                                              //定义结构体数组和指针
    input(p);
    printf("平均成绩倒数第二的学生是:\n");
    printf("学号:%d\n姓名:%s\n三门课的成绩:%5.lf,%5.lf,%5.lf\n平均成绩为:%6.2f\n",stu[N-1].num,stu[N-1].name,stu[N-1].score[0],stu[N-1].score[1],stu[N-1].score[2],stu[N-1].aver);
    return 0;
    
}

void input(struct Student stu[])
{
    int i;
    printf("请输入学生的学号、姓名和三门课的成绩:\n");
        for (i = 0; i < N; i++)
        {
            scanf("%d %s %f %f %f", &stu[i].num, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);             //输入相关信息进行处理
            stu[i].aver = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0;                                           //计算平均值
        }
}
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-12-18 11:42
    关注

    冒泡排序怎么不行?你咋写的?

    /*有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。*/
    #include<stdio.h>
    #define N 4                                                                                 //定义学生数量N为4
    struct Student
    {
        char name[20];                                                                          //姓名
        int num;                                                                               //学号
        float score[3];                                                                        //语文,数学,英语三门课的成绩
        float aver;                                                                            //平均成绩
    };
     
    int main()
    {
        void input(struct Student stu[]);                                                                                      //对两个函数进行声明
        void sorts(struct Student stu[]);  //对学生平均成绩降序排列
        struct Student stu[N],*p = stu;                                                              //定义结构体数组和指针
        input(p);
        sorts(p);
        printf("平均成绩倒数第二的学生是:\n");
        printf("学号:%d\n姓名:%s\n三门课的成绩:%5.1f,%5.1f,%5.1f\n平均成绩为:%6.2f\n",stu[N-2].num,stu[N-2].name,stu[N-2].score[0],stu[N-2].score[1],stu[N-2].score[2],stu[N-2].aver);
        return 0;
    }
    void input(struct Student stu[])
    {
        int i;
        printf("请输入学生的学号、姓名和三门课的成绩:\n");
            for (i = 0; i < N; i++)
            {
                scanf("%d %s %f %f %f", &stu[i].num, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);             //输入相关信息进行处理
                stu[i].aver = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0;                                           //计算平均值
            }
    }
    void sorts(struct Student stu[])
    {
        int i,j;
        struct Student temp;
        for(i=0;i<N-1;i++)
            for(j=0;j<N-i-1;j++)
            {
                if(stu[j].aver < stu[j+1].aver)
                {
                      temp = stu[j];
                      stu[j] = stu[j+1];
                      stu[j+1] = temp;
                }
            }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!