题解 P1781 【宇宙总统】
zhangyiming · · 题解
本初一蒟蒻的第一篇题解,好激动啊!!!
看了那么多大佬的题解,发现大多数都用sort。那我就来投机取巧、不要脸地发一篇不一样的题解。
原理:利用strcmp函数比较。
代码如下:
include<iostream>
include<cstring>
using namespace std;
int main(){
int n,num;
char a[201],max[201]="";
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(strcmp(max,a)<0){//当max < a时,返回负数。
strcpy(max,a);
num=i;
}
}
cout<<num<<endl;
puts(max);
return 0;
}
然而!
0分!!!
why?!
原来,strcmp函数是先比较第1个字符的值!
于是乎,加上了strlen判定。
AC满分代码如下:
include<iostream>
include<cstring>
using namespace std; int main(){
int n,num;
char a[201],max[201]="";
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if((strlen(max)<strlen(a))||(strlen(a)==strlen(max)&&strcmp(max,a)<0)){//若a的长度==max的长度,再用strcmp比较
strcpy(max,a);
num=i;
}
}
cout<<num<<endl;
puts(max);//输出
return 0; // 程序再见!
}
附上我的AC记录
管理员大大求过