哪位大侠帮我看看我这个程序哪里错

来源:百度知道 编辑:UC知道 时间:2024/05/07 04:18:09
#include<stdio.h>
main()
{
int i=0,j=0,k,m,max;
char a[20]={0},b[20][20],c;

printf("请输入一行字符:");
while((c=getchar())!='\n')
{
if(c!=' ')
{
a[i]++;
b[i][j]=c;
j++;
}
if(c==' ') i++;
for(k=0;k<19;k++)
{
if(a[k]>a[k+1])max=a[k];
else max=a[k+1];
}
for(k=0;k<20;k++)
{
if(max==a[k])
{
printf("最长的单词为:");
for(i=0;i<20;i++)
printf("%d",b[k][i]);
printf(" 长度为:%d",a[k]);

}
}
}
}

你的错误好多啊,我就不给你一一列出来了,下面是正确的代码,自己研究一下吧

#include<stdio.h>
#include<iostream.h>
void main()
{
int i=0,j=0,k,m,max;
char a[20]={0},b[20][20],c;
printf("请输入一行字符:");
while((c=getchar())!='\n')
{
if(c!=' ')
{
a[i]++;
b[i][j]=c;
j++;
}
if(c==' ')
{
i++;
j=0;
}
}
max=a[0];
for(k=0;k<19;k++)
if(max<a[k])
max=a[k];
printf("最长的单词为:");
for(k=0;k<20;k++)
{
if(max==a[k])
{
for(i=0;i<a[k];i++)
printf("%c",b[k][i]);
printf(" ");
}
}
printf("长度为:%d",a[k]);
}

printf("请输入一行字符:");
while((c=getchar())!='\n')

这里有问题,输入的是字符串,而c定义的是字符,用c=getchar() 不可以,会出错,c应该定义一个一唯数组!