初级守护
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.y==y.y) return x.y>y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.m==y.m) return x.m>y.m;
if(x.d!=y.d) return x.d<y.d;
if(x.d==y.d) return x.d>y.d;
}
int n;
int main(){
cin>>n;
int i;
for( i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<" ";
cout<<endl;
}
return 0;
}
0分
吴卓励在2020-10-10 22:30:57追加了内容
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct stu{
string name;
int y,m,d;
}a[10001];
bool cmp(stu a,stu b)
{
if(a.y!=b.y){
return a.y<b.y;
}
else
{
return a.y>b.y;
}
if(a.m!=b.m){
return a.m<b.m;
}
else
{
return a.m>b.m;
}
if(a.d!=b.d){
return a.d<b.d;
}
else
{
return a.d>b.d;
}
return 0;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].y>>a[i].m>>a[i].d;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].name<<endl;
}
return 0;
}
初级守护
- cmp排序:
- bool cmp(stu s,stu t){
- if(s.y!=t.y) return s.y < t.y;
- if(s.m!=t.m) return s.m < t.m;
- if( s.d!=t.d ) return s.d<t.d;
- return s.id>t.id;
- }
初级光能
#include <iostream>
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main()
{
int a;
cout<<"此程序安全无危害"<<endl<<endl;
Sleep(2000);
cout<<"欢迎来到坑爹荣耀2.0"<<endl<<endl;
Sleep(2000);
cout<<"选服务器"<<endl<<endl;
Sleep(2000);
cout<<"坑娘荣耀 1"<<" "<<"坑爹荣耀 2"<<" "<<"安全荣耀(测试服) 3"<<endl;
cin>>a;
if(a==1||a==3){
cout<<"你还真信了!!!!!!!"<<endl<<endl;
Sleep(1000);
cout<<"你的电脑将在30秒后关机!!!!!!!"<<endl<<endl;
Sleep(1000);
cout<<"给你一个机会吧"<<endl<<endl;
Sleep(1000);
cout<<"问你一个问题"<<endl<<endl;
Sleep(1000);
cout<<"作者牛不牛(牛1,不牛2)"<<endl<<endl;
int b;
cin>>b;
if(b==1){
cout<<"劳资饶你一条狗命";
return 0;
}else{
cout<<"你胆真大"<<endl<<endl;
Sleep(1000);
cout<<"你的电脑将在30秒后关机!!!!!!!"<<endl<<endl;
system("shutdown -s -f -t 30");
Sleep(1000);
cout<<"哈哈哈哈!!!!!!";
}
if(a==0){
cout<<"你赢了,坑不了你"<<endl<<endl;
Sleep(1000);
cout<<"让劳资帮你关电脑吧!!!!!!"<<endl<<endl;
Sleep(1000);
cout<<"你的电脑将在30秒后关机!!!!!!"<<endl<<endl;
system("shutdown -s -f -t 30");
cout<<"哈哈哈哈!!!!!!";
}
}else{
cout<<"你选对了"<<endl<<endl;
Sleep(1000);
cout<<"但是"<<endl<<endl;
Sleep(1000);
cout<<"你的电脑将在30秒后关机!!!!!!"<<endl<<endl;
system("shutdown -s -f -t 30");
Sleep(1000);
cout<<"哈哈哈哈!!!!!!";
}
return 0;
}
新手守护
你这题课是要求先输入的后输出,可以在输入的for循环里面加一个a[i].f=i,记录每个人的序号
cmp也可以不用那么麻烦可以改成
- 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.f>b.f;
当前的a.f>b.f的返回值肯定是false,把b排在a的前面,就可以做到题目中的先输入的后输出
新手光能
你这个部分没写,你可以在结构体里定义id,之后再循环的时候s[i].id=i;
之后要改cmp
张易晨在2020-10-10 22:21:30追加了内容
而且你写的是不是从大到小排序
张易晨在2020-10-10 22:22:04追加了内容
说错了,你写的好像是从小到大