杭电oj1004 Let the Balloon RIse

#include<stdio.h>#include<string.h>main(){intn,i,j,t,max,num[1000];charcolor[1000][16... #include <stdio.h>
#include <string.h>
main(){
int n, i, j, t, max, num[1000];
char color[1000][16];
while(scanf("%d", &n) != EOF){
if(n){
num[0]=0;
scanf("%s", color[0]);
for(i=1; i <n; i++){
num[i]=0;
scanf("%s", color[i]);
for(j=0; j <i-1; j++)
if(strcmp(color[i], color[j])==0) num[i] +=1;
}
max=num[0];
t=0;
for(i=1; i <n; i++)
if(max <num[i]) {max =num[i]; t=i;}
printf("%s\n",color[t]);
}
}
}
这是在网上找的代码,在杭电OJ上AC,但经我测试,当输入为
3
blue
red
red时
结果为blue 明显错误, 求解
展开
 我来答
袁世平1
2015-08-10 · TA获得超过536个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:389万
展开全部
  #include <stdio.h>
  #include <string.h>
  main(){
  freopen("x.in","r",stdin);
  int n, i, j, t, max, num[1010]; //num[i]表示的是i之后有多少和i颜色相同的气球
  char color[1000][16];
  while(scanf("%d", &n) != EOF){
  if(n){
  num[0]=0;
  scanf("%s", color[0]);
  for(i=1; i <n; i++){
  num[i]=0;
  scanf("%s", color[i]);
  for(j=0;j<i;j++) //这里应该是枚举i之前的所有的,不应该是<i-1,而是<i,能AC大概是人品好吧....
  if(strcmp(color[i],color[j])==0)
  num[i]+=1;
  }
  max=num[0];
  t=0;
  for(i=1;i<n;i++)
  if(max<num[i]){
  max=num[i];
  t=i;
  }
  printf("%s\n",color[t]);
  }
  }
  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式