题目描述
地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 n 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
输入格式
第一行为一个整数 n,代表竞选总统的人数。
接下来有 n 行,分别为第一个候选人到第 n 个候选人的票数。
输出格式
共两行,第一行是一个整数 m,为当上总统的人的号数。
第二行是当上总统的人的选票。
输入输出样例
输入 #1复制
5
98765
12365
87954
1022356
985678
输出 #1复制
4
1022356
说明/提示
票数可能会很大,可能会到 100 位数字。
1≤n≤20。
此题采用冒泡排序
#include <stdio.h>
#include <string.h>
struct xuanju
{int hao;char piaoshu[200];
};//定义一个结构体
int judge(char str1[],char str2[])
{if(strlen(str1)>strlen(str2))return 1;else if(strlen(str1)<strlen(str2))return 2;else if(strlen(str1)==strlen(str2)){int i;for(i=0;i<strlen(str1);i++){if(str1[i]>str2[i]){return 1;}if(str1[i]<str2[i]){return 2;}}}
}//判断大小
int main()
{int n,i;scanf("%d",&n);struct xuanju s[25];for(i=0;i<n;i++){s[i].hao=i;scanf("%s",s[i].piaoshu);}int j;for(i=1;i<=n-1;i++)for(j=1;j<=n-i;j++){if(judge(s[j].piaoshu,s[j-1].piaoshu)==1){char ans[200]={'\0'};strcpy(ans,s[j].piaoshu);strcpy(s[j].piaoshu,s[j-1].piaoshu);strcpy(s[j-1].piaoshu,ans);int t;t=s[j].hao;s[j].hao=s[j-1].hao;s[j-1].hao=t;}}//冒泡排序printf("%d\n%s\n",s[0].hao+1,s[0].piaoshu);return 0;
}