之前在林大oj上做过这种题,但有所不同,林大oj上给出了,所有可能出现的颜色,而本题颜色种类未给出,所以不能用初始化二维数组,而应将出现的所有颜色存到一个二维数组里,然后再用冒泡法,找出出现次数最多的颜色,虽然会有重复,但每种颜色出现的第一个位置的次数一定最高,这里也正是本题的创新之处,然后找出次数最高的颜色的位置,然后puts(它)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int max,n,i,j,k;
char str[1000][15];
while(scanf("%d ",&n)&&n>0)
{
int a[1000]={0};
for(i=0;i<n;i++)
{
gets(str[i]);
}//将出现的所有颜色存到一个二维数组里
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(str[i],str[j])==0)
{
a[i]++;
}
}
}//用冒泡法,找出出现次数最多的颜色
max=0;
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
k=i;
}
}//找出次数最高的颜色的位置
puts(str[k]);
}
return 0;
}
杭电OJ1004--让气球升起
最新推荐文章于 2025-04-30 14:33:54 发布