題意:輸入n個氣球的顏色,(氣球的顏色是一個字符串,最多有15個小寫字母),輸出最多相同顏色氣球的顏色,輸入0結束程序。
保證每組數據都有唯一且具有最多的一種顏色的氣球。
解題思路:利用string類型的數組保存n個氣球的顏色
樣例:
1)a b a d e
2)a b a d e
a->a b a d e
b->a b a d e
c->a b a d e
d->a b a d e
1)中的每個元素與2)中的每個元素比較,相等則cnt++,且最終把最大的元素個數保存在word中。
記錄最大元素個數的下標,保存在flag中。
#include#include using namespace std; int main(int argc, char *argv[]) { int n; string color[1010];//string類型的數組 while(1) { string color[1010] = {};//初始化為空的數組,沒有這個初始化會WA cin >> n; if(n == 0) return 0; for(int i = 0;i < n;i++) { cin >> color[i]; } int cnt,flag = 10000; int word = 0; for(int i = 0;i < n;i++) { cnt = 0; for(int j = 0;j < n;j++) { if(color[i] == color[j]) { cnt++;//元素相等則++ } } if(cnt > word) { word = cnt;//最大的元素個數保存在word中 flag = i;//記錄最大元素個數的下標 } } cout << color[flag] << endl; } return 0; }