赞
踩
- 之前在林大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;
- }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。