杭电ACM1004代码错误,求解错误原因

#include<stdio.h>intstrcmp(chara[],charb[]){inti;intt=0;for(i=0;a[i]!='\0'&&b[i]!='\0... #include<stdio.h>
int strcmp(char a[],char b[])
{
int i;
int t=0;
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
{
if(a[i]!=b[i])
{
t=1;
break;
}
}
return(t);
}
int main()
{
int n;
int a[1002];
int i,j,k;
int max,t;
char c[1002][16],ch;

while(scanf("%d",&n)!=EOF&&n!=0)
{
scanf("%c",&ch);
k=0;
for(i=0;i<n;i++)
{
gets(c[k]);
a[k]=0;
for(j=0;j<i;j++)
{
if(strcmp(c[j],c[k])==0)
{
a[j]++;
k--;
break;
}
}
k++;
}
max=a[0];
t=0;
for(i=1;i<k;i++)
{
if(max<a[i])
{
max=a[i];
t=i;
}
}
puts(c[t]);
}
return(0);
}
展开
 我来答
zzr1212
2012-04-18
知道答主
回答量:9
采纳率:0%
帮助的人:6.9万
展开全部
我觉得应该重新再开个数组存东西吧。。而不是直接拿原来那个,这样写起来很乱。还有就是,你为什么要重新写个比较函数呢? #include<string.h>里不是都有吗? 感觉有点多此一举。贴下我的代码,和你差不多,就是中间有点不一样。
#include<stdio.h>
#include<string.h>

char a[1001][16];
char b[1001][16];
int main()
{
int n,i,j;
int c[1001];
while(scanf("%d",&n),n!=0)
{
memset(c,0,sizeof(c));
memset(b,0,sizeof(b));
int k=0,flag=0;
for(i=0;i<n;i++)
{
flag=0;
scanf("%s",a[i]);
for(j=0;j<k;j++)
{
if(strcmp(a[i],b[j])==0)
{
flag=1;
c[j]++;
}
}
if(flag==0){
strcpy(b[k],a[i]);

c[k]++;
k++;
}
}
int max=c[0];
int x=0;
for(i=0;i<k;i++)
if(c[i]>max){
x=i;
max=c[i];
}
printf("%s\n",b[x]);
}
return 0;
}
ZESTRON
2024-09-04 广告
电子失效分析是指对电子元件或系统进行系统调查,以确定失效原因。通过显微镜、光谱学和电气测试等技术,分析人员可以查明导致故障的缺陷或问题。此过程包括检查物理损坏、分析电气特性和进行环境测试以确定根本原因。电子故障分析在半导体制造、汽车电子和消... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式