输入5位同学的一组信息,包括学号、姓名(不包含空格)、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序。

输入5位同学的一组信息,包括学号、姓名(不包含空格)、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序。
请利用结构体完成该题目
结构体定义:
typedef struct mes
{  int sno;
char sname[20];
float grade1;
float grade2;
float sum;
float avg;
}STUDENT; 

输入提示信息: "请输入五位学生的信息\n"
输入提示信息:"学号\t姓名(无空格)\t数学\t计算机\n"
输入数据格式:"%d %s %f %f"
输出提示信息:"学生成绩的排序结果为:\n"
输出数据格式:"学号:%d,姓名:%s,数学成绩:%3.1f,计算机成绩:%3.1f:%3.1f,分 :%3.1f\n"

运行样例1:

请输入五位学生的信息
学号	姓名(无空格)	数学	计算机
111	zhangli	        80	89↙
222	wangmeng	77	87↙
333	dahai	        60	61↙
112	lihua           75	89↙
211	meimei	        90	99↙
学生成绩的排序结果为:
学号:211,姓名:meimei,数学成绩:90.0,计算机成绩:99.0:94.5,分 :189.0
学号:111,姓名:zhangli,数学成绩:80.0,计算机成绩:89.0:84.5,分 :169.0
学号:112,姓名:lihua,数学成绩:75.0,计算机成绩:89.0:82.0,分 :164.0
学号:222,姓名:wangmeng,数学成绩:77.0,计算机成绩:87.0:82.0,分 :164.0
学号:333,姓名:dahai,数学成绩:60.0,计算机成绩:61.0:60.5,分 :121.0

#include <stdio.h>
typedef struct mes
{		   	    
    int sno;
    char sname[20];
    float grade1;
    float grade2;
    float sum;
    float avg;
}		   	     STUDENT;  //定义结构体

int main()
{		   	    
    int i, j, k;
    STUDENT temp, student [5];
    printf("请输入五位学生的信息\n");
    printf("学号\t姓名(无空格)\t数学\t计算机\n");
    for (i = 0; i < 5; i++)
    {		   	    
        scanf("%d %s %f %f", &student[i].sno, student[i].sname, &student[i].grade1, &student[i].grade2);
        student[i].sum = student[
                             i].grade1 + student[i].grade2;
        student[i].avg = student[i].sum / 2;
    }
    for (i = 0; i < 4; i++)
    {		   	    
        k = i;

        for (j = i + 1; j < 5; j++)
            if (student[k].sum < student[j].sum)
                k = j;

        temp = student[k];
        student[k] = student[i];
        student[i] = temp;

    }
    printf("学生成绩的排序结果为:\n");
    for (i = 0; i < 5; i++)
    {		   	    
        printf("学号:%d,姓名:%s,数学成绩:%3.1f,计算机成绩:%3.1f:%3.1f,分 :%3.1f\n", student[i].sno, student[i].sname, student[i].grade1
               , student[i].grade2, student[i].avg, student[i].sum);
    }  //显示五位同学的信息

    return 0;
}		   

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值