杭电ACM1004 为什么我测试结果对了却一直通过不了?求大神解答,请把我代码中出现的错误告诉我!谢谢!

#includeintmain(){intN,i,j,flag,num[100],t,max;charcolor[150][20];//二维数组前面是字符串个数后面是字符... #includeint main(){ int N,i,j,flag,num[100],t,max; char color[150][20];//二维数组 前面是字符串个数 后面是字符串长度 while(scanf("%d",&N)!=EOF&&(N>0&&N<=100)) { max=0; for(i=0;i0;i--) { flag=0; for(j=0;j<N;j++) { if(color[i]==color[j])//循环比较如果有一样的字符串则flag+1 flag++; num[i]=flag; } } //我再找到数组a中的最大值然后输出其对应的字符串即可,但是我需要一个确定的不能更改的a[i] for(i=0;inum[i+1]) max=i;//我把数组的下标赋值给max是为了找到最大的flag,也就是找到了最大的a[i]也就找到了最频繁出现的字符串 else max=i+1; } printf("%s\n",color[max]); } return 0;}
额 我是菜鸟 刚刚学习编程 跪求大神
#include<stdio.h>
int main()
{
int N,i,j,flag,num[100],t,max;
char color[150][20];
while(scanf("%d",&N)!=EOF&&(N>0&&N<=100))
{
max=0;
for(i=0;i<N;i++)
{
scanf("%s",color[i]);
}
for(i=N;i>0;i--)
{
flag=0;
for(j=0;j<N;j++)
{
if(color[i]==color[j])
flag++;
num[i]=flag;
}
}

for(i=0;i<N;i++)
{
if(num[i]>num[i+1])
max=i;
else
max=i+1;
}
printf("%s\n",color[max]);
}
return 0;
}
展开
 我来答
漠影歌
2015-11-19 · TA获得超过807个赞
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:442万
展开全部
简单的看了一下,先说两个问题,第一,if(color[i]==color[j])
flag++;
num[i]=flag;
这个位置,i = N,color[i]即color[N], 这已经越界了,应该是 N-1,也就是i -1.
第二,两个字符串比较应该用strcmp比较函数,而不是直接用 == 符号,先改改,
还有问题再继续追问我。还没调试,下次追问顺便把问题也一起发过来,追问或者私信都可以!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式