输入:
3
1 90
2 87
3 92
输出:
2 87
1 90
3 92
用一维数组存储学号和成绩,这里用到了结构体 。关于结构体的定义如下:
//结构体定义
struct student
{
//成员列表
string name; //姓名
int age; //年龄
int score; //分数
}stu1; //结构体变量创建方式1
int main() {
stu1.name = "王五";
stu1.age = 18;
stu1.score = 80;
cout << "姓名:" << stu1.name << " 年龄:" << stu1.age << " 分数:" << stu1.score << endl;
//结构体变量创建方式2
struct student stu2; //struct 关键字可以省略
stu2.name = "张三";
stu2.age = 18;
stu2.score = 100;
cout << "姓名:" << stu2.name << " 年龄:" << stu2.age << " 分数:" << stu2.score << endl;
//结构体变量创建方式3
struct student stu3 = { "李四",19,60 };
cout << "姓名:" << stu3.name << " 年龄:" << stu3.age << " 分数:" << stu3.score << endl;
return 0;
}
题解(完整代码):
#include<iostream>
#include<algorithm>
using namespace std;
struct student{
int id;
int grade;
}stu;
student array[100];
bool compare(student x,student y){
if(x.grade==y.grade){
return x.id<y.id;
}
else{
return x.grade<y.grade;
}
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>array[i].id>>array[i].grade;
}
sort(array,array+n,compare);
for(int i=0;i<n;i++){
cout<<array[i].id<<" "<<array[i].grade<<endl;
}
}
关于C++函数库中的 sort 算法,该函数在 # include <algorithm> 中,有三个参数:
①要排序的数组的起始地址;
②结束的地址;
③排序的方法,如果不写第三个参数则表示默认从小到大排序。
具体使用方法如下:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
//sort函数第三个参数采用默认从小到大排序
int array[]={45,12,34,78,90,13,26,38,59,63};
sort(array,array+10);
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
}
#include<iostream>
#include<algorithm>
using namespace std;
int cmpare(int a,int b){
return a>b;
}
int main(){
//sort函数第三个参数自己定义实现从大到小排序
int array[]={45,12,34,78,90,13,26,38,59,63};
sort(array,array+10,cmpare);
for(int i=0;i<10;i++){
cout<<array[i]<<" ";
}
}
版权声明:本文为AprRain原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。