【问题描述】若有以下银行卡信息:
struct card{
int id;//银行卡号
int bonus; //金额
};
请编写程序,从键盘输入5条银行卡记录,使用结构体数组存
储这些数据,并按金额升序排序,输出排序后的结果。
【输入形式】5条银行卡记录分行输入,每行数据用空格间隔
【输出形式】分5行输出数据,每行数据均使用空格间隔
【输入样例】
1001 20
1002 80
1003 50
1004 10
1006 40
【输出样例】
1004 10
1001 20
1006 40
1003 50
1002 80
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jshsjjn/article/details/125351925
#include<bits/stdc++.h>
using namespace std;
struct card{
int id;
int bonus;
}student[5];
int main()
{
for(int i=1;i<=5;i++)
{
cin>>student[i].id>>student[i].bonus;
}
//进行排序的快速操作是啥来着?
int m=0;
int t=1;
for(;m<5;)
{
int min=student[1].bonus;
for(int i=1;i<=5;i++)
{
if(student[i].bonus<min)
{
min=student[i].bonus;
t=i;
}
}
cout<<student[t].id<<" "<<student[t].bonus<<endl;
student[t].bonus=1000000;
m++;
t=1;
}
}
用sort函数进行降序的方法
#include<bits/stdc++.h>
using namespace std;
struct card{
int id;
int bonus;
}student[5];
bool compare(card a,card b)
{
return a.bonus<b.bonus;
}
int main()
{
for(int i = 0; i < 5; i++) {
cin >> student[i].id >> student[i].bonus;
}
sort(student,student+5,compare);
for(int i = 0; i < 5; i++) {
cout <<student[i].id <<" "<< student[i].bonus<<endl;
}
}
原文链接:https://blog.csdn.net/jshsjjn/article/details/125351925
课后小结:
- 也是比较轻松的
- 记得有一种直接对结构体排序的方法,利用sort函数,需要定义一个bool函数