杭电acm1004 详细解释一下 下面这个程序,谢谢。

#include<stdio.h>#include<string.h>chara[1000][16];intb[1000];voidmain(){intn,max,i,j... #include<stdio.h>
#include<string.h>
char a[1000][16];
int b[1000];
void main()
{
int n,max,i,j,m;

while(scanf("%d",&n)!=EOF)
{
getchar();
if(n==0)break;
for(i=1;i<=n;i++)
{
b[i]=0;
gets(a[i]);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(strcmp(a[i],a[j])==0)
b[i]++;

}
m=1;
max=b[1];
for(i=2;i<=n;i++)
if(max<b[i])
{ m=i;max=b[i];}
printf("%s\n",a[m]);
}
}
展开
 我来答
xx_lyq00
2013-06-08 · TA获得超过4138个赞
知道大有可为答主
回答量:1794
采纳率:88%
帮助的人:792万
展开全部

这题是输入一堆字符串,然后输出字符串出现次数最多的那一条。

#include<stdio.h>
#include<string.h>
char a[1000][16];
int b[1000];
void main()
{
 int n,max,i,j,m;
 
 while(scanf("%d",&n)!=EOF)
 { 
  getchar();    //吸收回车符。
  if(n==0)break;
  for(i=1;i<=n;i++)
  {
   b[i]=0;
   gets(a[i]);   //输入字符串
  }
  
  //统计第i个字符串在所有字符串中出现的次数,存在b[i]
  for(i=1;i<=n;i++)
  {
   for(j=1;j<=n;j++)
    if(strcmp(a[i],a[j])==0)   
     b[i]++;
  
  }
  m=1;
  max=b[1];
  //求出最大的字符串。
  for(i=2;i<=n;i++)
   if(max<b[i])
   {  m=i;max=b[i];}
  printf("%s\n",a[m]);
 }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式