写一个函数,输入一行字符,将此字符串中最长的单词输出。 不知道下面的程序错在何处,寻求帮助,不甚感谢
#include<stdio.h>#include<string.h>charshuchu(chara[]);voidmain(){charstr[100];printf...
#include<stdio.h>
#include<string.h>
char shuchu(char a[]);
void main()
{
char str[100];
printf("输入的字符是:\n");
gets(str);
shuchu(str);
}
char shuchu(char a[])
{
int i,j,m,p,q,most,t,s,b[100];
for(i=0,t=0;a[i]!='\0';i++,t++)
{
for(j=i;a[j]!=' ';j++)
{m=j-i;
if(a[j]=='\0') break;}
i=j;
b[t]=m;
}
for(q=1,most=1;q<t;q++)
{
for(p=q+1;p<=t;p++)
{
if(b[q]<b[p])
most=p;
}
}
for(t=1,s=0;t<=most;t++)
s=s+b[t];
printf("最长的单词是:\n");
for(;s<=s+m;s++)
printf("%c",a[s]);
return 0;
} 展开
#include<string.h>
char shuchu(char a[]);
void main()
{
char str[100];
printf("输入的字符是:\n");
gets(str);
shuchu(str);
}
char shuchu(char a[])
{
int i,j,m,p,q,most,t,s,b[100];
for(i=0,t=0;a[i]!='\0';i++,t++)
{
for(j=i;a[j]!=' ';j++)
{m=j-i;
if(a[j]=='\0') break;}
i=j;
b[t]=m;
}
for(q=1,most=1;q<t;q++)
{
for(p=q+1;p<=t;p++)
{
if(b[q]<b[p])
most=p;
}
}
for(t=1,s=0;t<=most;t++)
s=s+b[t];
printf("最长的单词是:\n");
for(;s<=s+m;s++)
printf("%c",a[s]);
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询