首页 > 其他分享 >成绩排序

成绩排序

时间:2022-10-21 16:31:37浏览次数:49  
标签:成绩 name temp int stuOne score 排序


题目:(王道 1061)

有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。

输入:   

 测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据。  每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。

输出:

将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。然后输出学生信息,按照如下格式: 姓名 年龄 成绩

输入:

3 abc 20 99 bcd 19 97 bed 20 97

输出:


bcd 19 97 bed 20 97 abc 20 99


#include <stdio.h>
#include <string.h>
struct student
{
char name[100];
int age;
int score;
}stuOne[1000];
int main()
{
int n,i,j;
struct student temp;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s%d%d",stuOne[i].name,&stuOne[i].age,&stuOne[i].score);
}
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(stuOne[j].score>stuOne[j+1].score)
{
temp=stuOne[j];
stuOne[j]=stuOne[j+1];
stuOne[j+1]=temp;
}
else if(stuOne[j].score==stuOne[j+1].score)
{
if(strcmp(stuOne[j].name,stuOne[j+1].name)>0)
{
temp=stuOne[j];
stuOne[j]=stuOne[j+1];
stuOne[j+1]=temp;
}
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d %d\n",stuOne[i].name,stuOne[i].age,stuOne[i].score);
}
}
return 0;
}


标签:成绩,name,temp,int,stuOne,score,排序
From: https://blog.51cto.com/u_15840342/5783653

相关文章

  • 【自然语言处理(NLP)】随机数生成与排序
    【自然语言处理(NLP)】随机数生成与排序作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建......
  • 排序算法
    1、归并排序归并是把两个或两个以上有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后把有序子序列合并为整体有序序列。注意:在递归中......
  • python | 算法-拓扑排序
    写在前面:我自己用python练习算法与数据结构的典型算法汇总在这里:汇总-算法与数据结构-python版,欢迎翻阅!1️⃣参考链接:https://github.com/algorithmzuo/algorithmbasic......
  • sql语句排序无效的问题
    数据可视化时因为数据类型排序无效的问题:这是由于你要排序的类型是String类型的而ORDERBY方法排序要求整数型。这就需要在ORDERBY后加CAST(需要排序的字段A......
  • 【数据结构/C语言】用链栈对整数进行升序排序
    #pragmawarning(disable:4996)#include<stdio.h>#include<stdlib.h>typedefintElemtype; typedefintStatus;typedefstructStack*SqList;typedefstructSt......
  • 基于Redis实现点赞、点赞用户按时间排序、好友关注和共同关注等业务
    点赞功能业务说明1、每个用户只能点一次赞,再次点击时取消点赞2、在Blog属性中增加isLike字段,用于判断当前用户是否点赞3、isLike的值从Redis中获取,可以用redis自带的......
  • 冒泡排序自写
    /***冒泡排序*/publicvoidcodeGgt1(){int[]a={4,2,6,8,9,3,6,0};for(intj=a.length;j>1;j--){for(inti=0;i<a.length-1;i++){if(a[i]>......
  • MySQL分组排序取每组第一条
    1.使用group_concat函数,但是弊端只能查询groupby后的字段参考: MySQL分组排序取每组第一条(最大值、最小值)MySQL的GROUP_CONCAT函数详解效果: ......
  • 设计题:排序算法
    学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。注意:请勿改动主函数main和其它......
  • Java数组快速排序
    https://blog.csdn.net/weixin_44194075/article/details/1138504761.快速排序的思想​通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的......