C_北理工乐学_结构

58. 学生成绩排序

/* 如果有优化方案评论我啊 */
/为什么代码没有高亮?/

大家参加了期末考试,成绩出来后老师要对 n 个学生进行成绩汇总和排序。要求程序按成绩降序进行排序。在排序过程中对于成绩相同的学生,要按照输入数据的顺序进行排列。例如:有5名学生的成绩:
zhang1,90
zhang2,91
zhang3,99
zhang4,91
zhang5,98

则排序结果应该为:
zhang3,99
zhang5,98
zhang2,91
zhang4,91
zhang1,90

>请注意例题中“zhang2”和“zhang4”的排列顺序。

输入:
第一行为将要输入的学生数量n
从第二行起后面连续 n 行数据,每行为一名学生的姓名(长度不超过20个字符,不包括空格),考试成绩(int)

输出:
排序后的结果。每行为一名学生的姓名和成绩。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int num;int i,j,t=0;char inf[10000];int m[100];int temp;int flag;struct o{char name[1000];int score;int no;}student[100];/*输入学生个数*/scanf("%d",&num);  for(i=0;i<num;i++){   student[i].no=i;     //标记序号t=0;flag=0;scanf("%s",inf);/*输入姓名*/for(j=0;inf[j]!=',';j++){student[i].name[j]=inf[j];}student[i].name[j]='\0';    //添加姓名尾标/*输入成绩*/for(j++;inf[j]!='\0';j++){m[t]=inf[j]-'0';t++;}student[i].score=0;for(j=0;j<t;j++)student[i].score=m[j]*pow(10,t-j-1)+student[i].score;  //计算成绩}/*降序排序*/for(i=0;i<num;i++)for(j=i+1;j<num;j++)if(student[i].score<student[j].score&&student[i].no<student[j].no){temp=student[i].no;student[i].no=student[j].no;student[j].no=temp;   }/*分数相同根据姓名排序*//*因为玄学把单独拿出来,否则测试用例1错误*/for(i=0;i<num;i++)for(j=i+1;j<num;j++)if(student[i].score==student[j].score){for(t=0;student[j].name[t]!='\0'&&student[i].name[t]!='0';t++)if(student[j].name[t]>student[i].name[t]&&student[j].no<student[i].no){temp=student[i].no;student[i].no=student[j].no;student[j].no=temp; }}/*输出*/for(i=0;i<num;i++)for(j=0;j<num;j++)if(student[j].no==i){for(t=0;student[j].name[t]!='\0';t++)printf("%c",student[j].name[t]);printf(",");printf("%d\n",student[j].score);}
}

C_北理工乐学_结构相关推荐

  1. java 北理工 教材_北理工《Java技术与应用》在线作业

    北理工<Java技术与应用>在线作业 可以代做所有奥鹏平台的作业.小论文.毕业论文.离线作业.考核作业.在线作业.在线测试,有需要的请联系本人 一.单选题(共 20 道试题,共 40 分. ...

  2. 北理工乐学C语言 47. 【大学】北理工的恶龙

    背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙.要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的 ...

  3. 【模式识别-北理工】11结构模式识别

    1 基本概念   结构模式识别: 以结构基元为基础,利用模式的结构信息完成分类的过程,称为结构模式识别.   基元: 构成模式结构信息的基本单元,本身不包含有意义的结构信息.   结构特征的表达:   ...

  4. 北理工乐学 42. 五年级小学生的题目

    42. 五年级小学生的题目 成绩 5 开启时间 2022年10月24日 星期一 08:00 折扣 0.8 折扣时间 2022年11月13日 星期日 23:55 允许迟交 否 关闭时间 2022年11月 ...

  5. 北理工乐学C语言 60.合并排序

    60.合并排序 成绩 0 开启时间 2022年11月7日 星期一 08:00 折扣 0.8 折扣时间 2022年11月27日 星期日 23:35 允许迟交 否 关闭时间 2022年12月4日 星期日 ...

  6. 北理工乐学C语言 49.扫雷

    49. 扫雷 背景 你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?;-)在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷.游戏过程中,计算机会在地图上显示一些数 ...

  7. 北理工乐学H:洗牌(选作)

    H:洗牌(选作) 成绩 5 开启时间 2022年11月21日 星期一 08:00 折扣 0.8 折扣时间 2022年12月31日 星期六 23:55 允许迟交 否 关闭时间 2022年12月31日 星 ...

  8. 北理工乐学68.恭喜发财 利是窦来

    68. 恭喜发财 利是窦来 成绩 5 开启时间 2022年11月21日 星期一 08:00 折扣 0.8 折扣时间 2022年12月18日 星期日 23:55 允许迟交 否 关闭时间 2022年12月 ...

  9. 北京理工大学计算机在线作业答案,北理工17秋《操作系统》在线作业答案

    北理工<操作系统>在线作业 ' n! f. Y+ ^% C一.单选题:[20道,总分:40分] . v7 c6 \% }  @- M1 p6 y3 @1.下面关于重定位的有关描述,错误的是 ...

  10. 北理工 管理系统计算机仿真作业,20秋北理工《CADCAM原理与应用》--模拟3-答案 更…...

    20秋北理工<CADCAM原理与应用>--模拟3-答案 更- 2020-08-06 09:08:00 583 有学员问关于20秋北理工<CADCAM原理与应用>--模拟3-答案 ...

最新文章

  1. 线性回归的改进-岭回归
  2. Cookie和Session的区别
  3. 华为软件编程规范和范例 可读性
  4. [ERROR] org.testng.TestNGException:Cannot find class in classpath:
  5. 自定义依赖注解无效_最详细的自定义Spring Boot Starter开发教程
  6. 浅入浅出理解傅里叶变换
  7. 卷积神经网络CNN如何训练?
  8. 2014计算机技术与软件专业技术资格 网络工程师考点,全国计算机技术与软件专业技术资格(水平)考试2014年下半年 网络工程师 答案详解.pdf...
  9. 双重差分模型能做固定效应吗_互助问答第53期:控制时间效应、交互项等问题...
  10. 电脑ps4,人在外心在家,教你用PC/MAC远程打PS4
  11. Leetcode 1235. 规划兼职工作(DAY 73) ---- 动态规划学习期(上午去上高数课了 课下老师说上次旷课不扣平时分嘻嘻)
  12. CS 与 PS 的区别
  13. Windows搭建Deepmind的星际争霸2平台
  14. 深度学习:GCN(图卷积神经网络)理论学习总结
  15. Javaweb使用dom4j解析xml文档的一般姿势
  16. WPS中如何将多个文件在不同窗口中打开
  17. 电脑连不上网,排查原因
  18. Git上传项目提示Push rejected: Push to origin/dev was rejected解决办法
  19. 杀毒软件McAfee导致客户端访问mscrm超慢
  20. 定理在数学中的简写形式_数学最奇葩的九个定理是什么

热门文章

  1. 扫锚工具:xscan.exe
  2. 最新delphi7序列号和破解文件
  3. SpringMVC_开天辟地
  4. 黑苹果系统发热与续航
  5. java加入md5_javamd5加密解密
  6. Truecrypt之死
  7. Chrome插件-JSONView
  8. 山东工商学院第五届ACM趣味编程大赛感想
  9. Http Simulate
  10. MySQL可视化工具之SQLyog小海豚