#include <iostream> using namespace std; struct Hero{ string name; int b; int m; double bj; void speak(){ cout<<"嘿小鬼"; } void att(Hero b){ cout<<name<<"攻击了"<<b.name; } }; bool cmp(Hero x,Hero y){ //参数指的是比较的主体 return x.m<y.m; } int main() { int n; double m; //创建英雄类的变量 Hero a; //输入单个英雄的各个属性 cin>>a.name;//.代表的,也称为调用类中的属性 cin>>a.bj; //使用英雄的功能 a.speak(); //创建一个英雄数组 Hero b[1000]; //批量输入英雄数据 1 for(int i=0;i<1000;i++){ cin>>b[i].name>>b[i].b>>b[i].m; } //批量输入英雄数据 2 string name; int b,m; for(int i=0;i<1000;i++){ cin>>name>>b>>m; b[i]={name,b,m}; } //通过英雄的血量从大到小进行排序 for(int i=0;i<n-1;i++){ for(int j=0;j<n-i-1;j++){ if(b[j].m<b[j+1].m){ swap(b[j],b[j+1]); } } } //sort对自创类型排序 //sort默认排序是指默认类型,从小到大,自创类型需要cmp sort(b,b+n,cmp);//按血量从小到大 return 0; } /* 案例:输入一个n,代表学生的人数 输入n名同学的名字,语文成绩,数学成绩 按照他们的总分从高到低排序,输出他们的名字 输入: 5 gougou 1 90 tuzi 80 6 shanji 59 59 shidan 80 1 doufu 7 7 输出: shanji gougou tuzi shidan doufu */ /* 案例:输入一个n,代表学生的人数 输入n名同学的名字,出生月份,出生日期 按照他们的生日从小到大排序,输出他们的名字, 如果生日相同,按照名字的字典序排序(按字符串默认比大小) 输入: 5 gougou 3 6 tuzi 8 6 shanji 5 9 shidan 8 6 doufu 7 7 输出: gougou shanji doufu shidan tuzi */ struct stu{
string name; int y,d; }; bool cmp(stu a,stu b){ if(a.y!=b.y) return a.y<b.y; if(a.d!=b.d) return a.d<b.d; return a.name<b.name; } 作业:1178成绩排序 (责任编辑:admin) |