题目描述:
输入一组颜色,输出颜色个数最多的颜色值。
源代码:
#include<iostream>
#include<stdio.h>
#include<string>
#define N 1005
using namespace std;
int main()
{
int n;
int i,j;
char a[N][10]; //记录颜色
int b[N]; //统计颜色个数
bool c[N]; //标记颜色是否被计算过
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);
b[i]=0;
c[i]=false;
}
b[0]=1;
c[0]=true;
for(i=0;i<n;i++)
{
b[i]=1;
for(j=i+1;j<n;j++)
{
//如果没有计算过颜色并且后一个与前一个相同
if(strcmp(a[i],a[j])==0&&c[j]==false)
{
b[i]++; //计数加1
c[j]=true; //标记为计算过
}
}
}
int max=b[0];
int count=0;
for(i=1;i<n;i++)
{
if(b[i]>max)
{
max=b[i];
count=i;
}
}
cout<<a[count]<<endl; //输出数量最大的颜色
}
return 0;
}
本题没有什么技术含量,主要是数组的利用。