main()
{
int i,j,k,t,p;
char s[80];
gets(s);
printf("%s",s);
/*输出字符串中最长单词*/
p=strlen(s);
for(i=j=k=t=0;i<p;i++)
{
t+=s[i]!=0; /*求出单词长度*/
{ if(s[i]==''||i=p-1)
{k=t;j=i-k;} /*记录单词长度和单词首字母出现位置*/
t=0;
}
}
s[j+k]='\0'; /*结束标记*/
pritf("%s",&s[j]);
}
请问我编的这个输出字符串中最长单词的程序错在哪里?
运行时没错,但每次都没结果输出
----------------解决方案--------------------------------------------------------
怎么没人回应啊?
急啊,在线等!
----------------解决方案--------------------------------------------------------
至少...先把语法错误检查下吧...
1)i==p-1
2)printf
----------------解决方案--------------------------------------------------------
哦,说明一下,printf是我不小习敲错了,
i==p-1;这句有语法错误?
好像没有哦!运行时整个程序是没语法错误的。
能再帮忙看看吗?
还是要谢谢你
----------------解决方案--------------------------------------------------------
[CODE]#include <stdio.h>
#include <string.h>
main()
{
int i,j,k,t,p;
char s[80];
gets(s);
printf("%s",s);
/*输出字符串中最长单词*/
p=strlen(s);
for(i=j=k=t=0;i<p;i++)
{
t+=s[i]!=0; /*求出单词长度*/
{ if((s[i]==' ')||(i==p-1))//空字符问题
{k=t;j=i-k;} /*记录单词长度和单词首字母出现位置*/
t=0;
}
}
s[j+k]='\0'; /*结束标记*/
printf("%s\n",&s[j]);
}
[/CODE]
----------------解决方案--------------------------------------------------------
你写的是i=p-1,粗心了吧
----------------解决方案--------------------------------------------------------
看来你学的还不够扎实哦
----------------解决方案--------------------------------------------------------
呵呵,多谢楼上的指点!
----------------解决方案--------------------------------------------------------