当前位置: 首页 > news >正文

ZZNUOJ_用C语言编写程序实现1193:单科成绩排序(结构体专题)(附完整源码)

题目描述

有一学生成绩表,包括学号、姓名、3门课程成绩。请按要求排序输出:若输入1,则按第1门课成绩降序输出成绩表,若输入为i(1<=i<=3),则按第i门课成绩降序输出成绩表。

输入

首先输入一个整数n(1<=n<=100),表示学生人数;
 
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
 
最后一行输入一个整数i,表示要求按第i门课成绩降序排序输出,若该门课成绩相同,则按学号升序。

输出

输出按第i门课降序排序的结果,格式见样例。

样例输入

3
541207010188 Zhangling 89 78 95
541207010189 Wangli 85 87 99
541207010190 Fangfang 85 68 76
1

样例输出

541207010188 Zhangling 89 78 95
541207010189 Wangli 85 87 99
541207010190 Fangfang 85 68 76

完整源码:

#include <stdio.h>
#include <stdlib.h>
typedef struct student
{long long num;char name[40];int grade[3];
} STUDENT;
int main()
{struct student s[100];struct student t;int n,i,j,m;scanf("%d",&n);for(i=0; i<n; i++){scanf("%lld",&s[i].num);scanf(" %s",s[i].name);scanf("%d",&s[i].grade[0]);scanf("%d",&s[i].grade[1]);scanf("%d",&s[i].grade[2]);}scanf("%d",&m);m--;for(j=1; j<n; j++){for(i=n-1; i>=j; i--){if(s[i].grade[m]>s[i-1].grade[m]){t=s[i];s[i]=s[i-1];s[i-1]=t;}}}for(i=0; i<n; i++)printf("%lld %s %d %d %d\n",s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2]);return 0;
}
http://www.lryc.cn/news/19856.html

相关文章:

  • expect 使用方法
  • Spring AOP详解-Spring官方原版
  • 链表习题精选(持续更新中)
  • 【log】操作类日志处理 与 报错类日志处理logback
  • 百度网盘好友发来的文件手动输入JS选择代码批量保存
  • 【CS224W】(task6)Google的PageRank算法
  • Python安装拓展库及常用的pip命令及其用法
  • 这9道软件测试面试题,就能刷掉90%的软件测试员
  • 【大数据】大数据Hadoop生态圈
  • python读取tif图像+经纬度
  • Kali安装配置vulhub
  • 【进击的算法】动态规划——不同维度的背包问题
  • udiMagic 导入 Excel to Tally ERP Crack
  • Redis实现分页和多条件模糊查询方案
  • 【H5 | CSS | JS】如何实现网页打字机效果?快收下这份超详细指南(附源码)
  • Airbyte,数据集成的未来
  • 00.内容安排
  • FreeRTOS任务基础知识
  • JDBC-API详解、SQL注入演示、连接池
  • C 学习笔记 —— 动态分配内存(malloc)
  • RK3588通用布线设计指南
  • ChatGPT也懂如何设计开发板!?
  • 去了字节跳动,才知道年薪40W的测试居然有这么多?
  • 2023前端面试知识点总结
  • FL StudioV21电脑版水果编曲音乐编辑软件
  • 【数据结构初阶】实现顺序表的简单功能
  • 华为OD机试题,用 Java 解【停车场车辆统计】问题
  • Linux中使用Docker部署Mysql数据库
  • JPDA(远程调试)使用步骤
  • 磷脂-聚乙二醇-丙烯酸酯;DSPE-PEG-AC试剂说明;DSPE-PEG-Acrylate科研用