恒鹰外墙砖:一题c程序

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 13:41:21
#include<string.h>
main()
{char t[50][10],a[1];
int m=0,b,max,y,put=0;
for(;;)
{ scanf("%c",&a[0]);
if(a[0]!=' '&&a[0]!='\n') strcat(t[m],a);
if(a[0]==' ')m++;
if(a[0]=='\n')break;
}
max=strlen(t[0]);
for(b=1;b<=m;b++)
{
y=strlen(t[b]);
if(y>max){max=y;put=b;}
}
puts(t[put]);
}
输入一句英文,输出最长的单词/
比如 i am liu
输出liu
这个程序有问题,希望大家改的还是用到降维

我稍微改了一下,我试过了,是可以的。
#include<string.h>
#include <stdio.h>
main()
{
char t[50][10] = {0},a[2];
int m=0,b,max,y,put=0;
a[1] = 0;
for(;;)
{
scanf(\"%c\",&a[0]);
if(a[0]!=\' \'&&a[0]!=\'\\n\')
strcat(t[m],a);
if(a[0]==\' \')
m++;
if(a[0]==\'\\n\')
break;
}
max=strlen(t[0]);
for(b=1;b<=m;b++)
{
y=strlen(t[b]);
if(y>max)
{max=y;put=b;}
}
printf(\"\\nmax = %d,str = %s\\n\",max,t[put]);
}

??问什么呢?

程序不对吗

为什么要用一个这么复杂的方式来输入字符串呢,难道是老师的要求,还是自己要尝试以下新鲜的手段。^_^
不过你除了最后一个字符串有结束标志外,其他的都没有啊!!
你的目的是要输出最长字符串吧,但却无法实现,就是上述原因!!