题目要求:输入行数,每行输入气球颜色,输出出现次数最多的颜色,输入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;}
感悟:题意理解要深刻,多方位思考问题。