您的位置:首页 > 其它

杭电1004——Let the Balloon Rise

2016-08-16 17:35 344 查看

Let the Balloon Rise

一、题目描述



二、解题思路

这道题的大意是要找出出现次数最多的那个颜色。我定义了几个数组:color[]、colorMax[]、colorCount[].

color[]:用来储存输入的颜色。

colorMax[]:用来储存不同的颜色,当颜色出现不同时则存到该数组。

colorCount[]:用来计算颜色出现的次数,若颜色重复了,则数目加一,数组下标在比较的过程中与colorMax[]对应,也就实现了颜色与数量的对应,当找到最大数量的colorCount[]时,通过下标便可打印出颜色。

三、代码部分

<pre name="code" class="cpp">#include<iostream>
#include<string>
using namespace std;

int main()
{
int n;
string color[1001];
string colorMax[1001];//用来存储不同颜色的数组

while(cin >> n)
{
int colorCount[1001] = {0};//存储每种颜色所出现的次数,且下标与coloMax对应
int count = 0;

if(n == 0)
{
break;
}

for(int i = 0; i < n; i++)
{
cin >> color[i];
}

colorMax[0] = color[0];

for(int i = 1; i < n; i++)
{
int d = 0;
for(int j = 0; j <= count; j++)
{
//若颜色相同,则colorCount加一,说明这个颜色的数量增加
if(color[i] == colorMax[j])
{
colorCount[j]++;
}
else
{
d++;
}
}
//若颜色不同,则count自增一存储这个不同的颜色
if(d == count + 1)
{
colorMax[++count] = color[i];
}
}

//找出出现次数最多的颜色
int max = colorCount[0];
int mark = 0;
for(int i = 1; i <= count; i++)
{
if(colorCount[i] > max)
{
max = colorCount[i];
mark = i;
}
}
cout << colorMax[mark] << endl;
}
return 0;
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: