首页 > 其他分享 >64. 学生成绩排序

64. 学生成绩排序

时间:2022-12-30 12:35:06浏览次数:70  
标签:成绩 int zhang1 zhang2 64 90 排序

64. 学生成绩排序

 

    大家参加了期末考试,成绩出来后老师要对 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)

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

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示
  1. 5↵
  2. zhang1,90↵
  3. zhang2,91↵
  4. zhang3,99↵
  5. zhang4,91↵
  6. zhang5,98↵
以文本方式显示
  1. zhang3,99↵
  2. zhang5,98↵
  3. zhang2,91↵
  4. zhang4,91↵
  5. zhang1,90↵
1秒 64M 0
测试用例 2 以文本方式显示
  1. 5↵
  2. zhang31,90↵
  3. zhang51,90↵
  4. zhang2,90↵
  5. zhang42,90↵
  6. zhang1,90↵
以文本方式显示
  1. zhang31,90↵
  2. zhang51,90↵
  3. zhang2,90↵
  4. zhang42,90↵
  5. zhang1,90↵
1秒 64M 0
测试用例 3 以文本方式显示
  1. 1↵
  2. wang,100↵
以文本方式显示
  1. wang,100↵
1秒 64M 0

【代码】

#include <stdio.h>
#include <string.h>
struct student {
	char name[50];
	int grade;
};
int main(void)
{	
	struct student exam[100];
	int n;
	scanf("%d", &n); getchar();
	for (int i = 0; i < n; i++) {
		char temp[100];
		gets(temp);
		char *t = strchr(temp, ',');
		 *t = ' ';
		sscanf(temp, "%s %d", &exam[i].name, &exam[i].grade);
	}
	for(int i=0;i<n;i++)
		for(int j=0;j<n-1-i;j++)
			if (exam[j].grade < exam[j + 1].grade) {
				struct student temp = exam[j];
				exam[j] = exam[j + 1];
				exam[j + 1] = temp;
			}
	for (int i = 0; i < n; i++)
		printf("%s,%d\n", exam[i].name, exam[i].grade);
	return 0;
}

 

标签:成绩,int,zhang1,zhang2,64,90,排序
From: https://www.cnblogs.com/alien-han/p/17014614.html

相关文章

  • Java 自定义Excel数据排序
    通常,我们可以在Excel中对指定列数据执行升序或者降序排序,排序时可依据单元格中的数值、单元格颜色、字体颜色或图标等。在需要自定义排序情况下,我们也可以自行根据排序需要......
  • H5 拖动排序 美食排行榜
    尝试写一下拖动元素进行排序,真是想到什么去写什么......
  • 【LeeCode】34. 在排序数组中查找元素的第一个和最后一个位置
    【题目描述】给你一个按照非递减顺序排列的整数数组 ​​nums​​​,和一个目标值 ​​target​​。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目......
  • 【LeetCode数组#1二分查找】二分查找、搜索插入、在排序数组中查找元素的第一个和最后
    二分查找题目力扣704题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。......
  • Codeforces Round #764 E
    E.Masha-forgetful题链结论就是任何长的串都可以被2,3长度的串表示后面就是暴力hash和很常规的dp[i]表示前i个是否匹配了voidsolve(){intn,m;cin>>n>>m;tu......
  • 输出结果排序 sort命令
    (4条消息)shell中sort命令详解_绮梦寒宵的博客-CSDN博客_shellsortshellsort命令-Kimbo-博客园(cnblogs.com)du-h|sort-rh>/opt/fossx/data/wyyshell/anale......
  • python不同排序算法的比较
    1.冒泡排序:相邻两个数相比较,如果大于则交换顺序,有序区在列表尾部 代码实例:defbubble_sort(li):foriinrange(len(li)-1):forjinran......
  • 各个排序算法是否稳定案例
    堆排序:不稳定排序......
  • LeetCode 删除排序数组中的重复项
    题目给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能......
  • 算法系列-快速排序
     今天重温一下快速排序,快速排序主要是通过从右向左和从左向右扫描,当左边的扫描标记到比基准值大的停下,右边的扫描标记标记到比基准值小的停下,然后交换左右标记处的值......