当前位置: 代码迷 >> C语言 >> 程序错在哪?怎么没输出结果?
  详细解决方案

程序错在哪?怎么没输出结果?

热度:101   发布时间:2007-07-05 22:41:52.0
程序错在哪?怎么没输出结果?

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,粗心了吧
----------------解决方案--------------------------------------------------------
回复:(yqiong)程序错在哪?怎么没输出结果?

看来你学的还不够扎实哦


----------------解决方案--------------------------------------------------------

呵呵,多谢楼上的指点!


----------------解决方案--------------------------------------------------------
  相关解决方案