首页 > 编程语言 >成绩排序—————c++

成绩排序—————c++

时间:2024-08-17 20:26:56浏览次数:10  
标签:分数 排序 20 int c++ 成绩 成绩单

先看问题:

成绩排序

时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度:普及-
分数:100 OI排行榜得分:12(0.1*分数+2*难度)
出题人:root

描述

给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。

输入描述

第一行为n (0 < n < 20),表示班里的学生数目;

接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。

输出描述

把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。

用例输入 1 

4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28

用例输出 1 

Joey 92
Hanmeimei 90 
Kitty 80
Tim 28

答案(解析):
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,a[20];
	string s[25];
	cin>>n;
	memset(a,0,sizeof(a));//将数组a归0,也可以写成a[20]={0}
	for(int i=0;i<n;i++)
	{
		cin>>s[i]>>a[i];
	}
	for(int i=0;i<n-1;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			if(a[i]<a[j])//分数从高到低进行排序
			{
				swap(a[i],a[j]);
				swap(s[i],s[j]);
			}
			if(a[i]==a[j]&&s[i]>s[j])//成绩相同的比较字典序
			{
				swap(a[i],a[j]);
				swap(s[i],s[j]);
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		cout<<s[i]<<' '<<a[i]<<endl;
	}
	return 0;
}

标签:分数,排序,20,int,c++,成绩,成绩单
From: https://blog.csdn.net/arttfkhuhugyg/article/details/141270964

相关文章

  • C++输出
    Hello!Hi!这是我的第一个程序如何输出上面的文字?C++提供了一个函数——cout1|#include<iostream>2|3|intmain()4|{5|cout<<"Hello!";6|return0;7|}以上代码是cout的应用话说回来,如何实现文章开头的效果呢?你可能会用以下代码1|cout<<"Hello!";2|cout<......
  • C++-练习-20
    题目:WilliamWingate从事披萨饼分析服务。对于每个披萨饼,它都需要记录下列信息:披萨饼从事公司的名称,可以有多个单词组成披萨饼的直径披萨饼的重量。请设计一个能够存储这些信息的结构,并编写一个使用这种结构变量的程序。程序将请求用户输入上述信息,然后显示这些信息。请......
  • 【C++进阶学习】第十三弹——C++智能指针的深入解析
    前言:在C++编程中,内存管理是至关重要的一个环节。传统的手动内存管理方式容易导致内存泄漏、悬挂指针等问题。为了解决这些问题,C++引入了智能指针。本文将详细讲解C++中智能指针的概念、种类、使用方法以及注意事项。目录一、引言二、智能指针的原理及目的2.1智能指针......
  • C++_类和对象(下篇)
    一、目标1.再谈构造函数2.Static成员3.友元4.内部类二、对目标的讲解1.再谈构造函数1.1构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。classDate{public: Date(intyear,intmonth......
  • C/C++ 拷贝构造函数 | 赋值构造函数 | 移动构造函数 | 移动赋值构造函数
    文章目录前言1.拷贝构造函数(CopyConstructor)2.赋值构造函数(CopyAssignmentOperator)3.移动构造函数(MoveConstructor)4.移动赋值构造函数(MoveAssignmentOperator)总结前言C++中关于一个对象的构造,就有很多讲究。其中最常用的可能就是拷贝构造函数......
  • 【c++】用c++写一个十六进制颜色随机产生器
     引入:大家在设计网页时有没有不知道用啥颜色,词汇量太少不知道有啥颜色单词?今天教大家用C++一个程序来随机生成一个16进制的颜色值 #include<iostream>#include<cstdlib>#include<ctime>intmain(){ srand(time(nullptr)); intarr[]={0,1,2,3,4,5,6,7,8,......
  • 彼岸花开C++,模版初阶
    欢迎访问小马的博客,如果觉得小马的博客有帮助的话,记得点赞收藏加关注哦~~~  模版初阶(1)泛型编程(2)函数模版(3)类模版模版初阶(1)泛型编程如何实现一个通用的交换函数?voidSwap(int&a,int&b){inttmp=a;a=b;b=tmp;}voidSwap(double&a,do......
  • Java中使用lambda表达式自定义排序
    对于一维数组,通常使用Arrays.sort()(默认升序)int[]nums={3,1,4,2};Arrays.sort(nums);对于二维数组,可以lambda表达式实现特定的排序要求。在Arrays.sort()的第二个参数中,写lambda表达式lambda表达式形如(a,b)->{returna-b;},其中a,b表示数组中的元素升序/......
  • 【C++】STL 知识总复习
    文章目录1.STL使用1.1常见的容器1.1.1序列式容器1.1.2关联式容器1.1.3容器适配器1.2迭代器1.2.1输入迭代器(InputIterator)1.2.2输出迭代器(OutputIterator)1.2.3前向迭代器(ForwardIterator)1.2.4双向迭代器(BidirectionalIterator)1.2.5随机访问迭......
  • c++ (2-0) 从txt读取和保存数据
     CMakeLists.txt #设置CMake的最小版本要求cmake_minimum_required(VERSION3.10)#设置项目名称和版本project(PoseSaverVERSION1.0)#设置C++标准为C++11set(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDTrue)#查找Eigen库find_packa......