Let the Balloon Rise
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004
题目要求
输入一个n,后面有n行,每一行都是一种气球的颜色,找出出现次数最多的颜色并输出。以n=0结束。
分析
用字符二维数组直接存储,再用一个num数组存储出现次数,以该字符串第一次出现的位置i与num数组的i相同,然后输出即可。
代码
#include<iostream>
#include<string>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(){
int n,max,flag;
string a[1000];
int num[1000];
while(~scanf("%d",&n)&&n){
max=flag=0;
memset(num,0,sizeof(num));
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){//类似选择排序发的循环
if(a[i]==a[j])
num[i]++;
}
if(num[i]>max){
max=num[i];
flag=i;//依次为标记点记录位置,输出最大值
}
}
cout<<a[flag]<<endl;
}
return 0;
}