题目要求:输入行数,每行输入气球颜色,输出出现次数最多的颜色,输入0终止输入。
题目思路:定义qiqiu数据类型包含两个元素,利用while循环向字符数组中输入气球颜色,比较每个数字中的字符,若相同则与此字符数组所对应的整数数组加1。比较整数数组大小,输出最大数组所对应的字符数组。
细节处理:利用strcmp和strcpy函数,利用整数数组对应字符数组比较相同字符出现字数。
#include<bits/stdc++.h>
using namespace std;struct qiqiu
{
char a[100][15];
int b[100];
};
int main()
{ int n,i,j,t=0,N=0;
char d[100][15];
while(cin>>n)
{ qiqiu q;
if(n==0) break;
for(i=0;i<n;i++)
{ q.b[i]=1;
cin>>q.a[i];
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{if(i==j) continue;
if(strcmp(q.a[i],q.a[j])==0) q.b[i]++;}
}
for(i=1;i<n;i++)
{ if(q.b[i]>q.b[t]) t=i;
}
strcpy(d[N],q.a[t]);
N++;
}
for(i=0;i<N;i++)
cout<<d[i]<<endl;
return 0;
}
感悟:题意理解要深刻,多方位思考问题。