#include <iostream> using namespace std; 输入:n 学生人数 接下来输入n行 每行有一个字符串和三个整数,分别代表学生名字,语文、数学、英语成绩 输出:按照三科总分从大到小输出学生的名字,空格隔开 int n; string name[100000]; int a[100000],b[100000],c[100000]; int z[100000]; int main() { cin>>n; for(int i=0;i<n;i++){ cin>>name[i]>>a[i]>>b[i]>>c[i]; z[i]=a[i]+b[i]+c[i]; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(z[j]<z[j+1]){ swap(z[j],z[j+1]); swap(name[j],name[j+1]); } } } for(int i=0;i<n;i++) cout<<name[i]<<" "; return 0; } 结构体: 新建类型的功能 struct 类名{ 具体的属性:性质 具体的功能:能力 }; struct stu{ string name; int a,b,c; int z; void speak(string s){ cout<<"我说"<<s; } }; int n; int main(){ //stu a;a.speak("玩"); stu b[10000]; cin>>n; for(int i=0;i<n;i++){ cin>>b[i].name>>b[i].a>>b[i].b>>b[i].c; b[i].z=b[i].a+b[i].b+b[i].c; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(b[j].z<b[j+1].z){ swap(b[j],b[j+1]); } } } for(int i=0;i<n;i++){ cout<<b[i].name<<" "; } return 0; } bool cmp(int a,int b){ return a>b;//返回值返回的是什么情况下第一个参数排放在第二个参数的前边 } int main(){ int a[5]={5,3,7,2,8}; //sort(地址开始,地址结尾+1);//排序函数 默认从小到大 sort(a,a+5); //sort(地址开始,地址结尾+1,规则);//排序函数 按照规则排序 sort(a,a+5,cmp);//根据cmp定义的方式排序 sort的使用限制:必须是它默认会比较的 } struct stu{ string s; int a,b,c; }; bool cmp(stu a,stu b){ return a.a+a.b+a.c>b.a+b.b+b.c; } int main(){ int n; stu b[10000]; cin>>n; for(int i=0;i<n;i++){ cin>>b[i].s>>b[i].a>>b[i].b>>b[i].c; } sort(b,b+n,cmp);//algorithm //for()输出 return 0; } 输入5个人 姓名,年,月,日 按照年龄从大到小输出名字 struct stu{ string s; int y,m,d; }; bool cmp(stu a,stu b){ if(a.y!=b.y) return a.y<b.y; if(a.m!=b.m) return a.m<b.m; if(a.d!=b.d) return a.d<b.d; return a.s<b.s; } int main(){ int n; stu b[10000]; cin>>n; for(int i=0;i<n;i++){ cin>>b[i].s>>b[i].y>>b[i].m>>b[i].d; } sort(b,b+n,cmp);//algorithm //for()输出 return 0; } 练习: 输入5个学生的名字,月,日 输出同月同日生的同学输出在一行 多行输出按照生日从小到大,名字按照从小到大 格式如下: A 5 4 B 5 4 C 3 2 D 4 12 E 3 2 C E D A B sort(开头地址,结尾地址+1); sort(开头地址,结尾地址+1,规则); int a[10]={1,2,3,4,5,6,7,8,9,10}; 排序:sort(a+3,a+8,cmp);//cmp是从大到小的规则 输出:1 2 3 8 7 6 5 4 9 10 自带比较(了解即可) struct stu{ string name; int a,b,c; bool operator<(stu &g){ return a>g.a; } }; //struct class union (责任编辑:admin) |