当前位置: 代码迷 >> C语言 >> C语言习题答案求修改意见
  详细解决方案

C语言习题答案求修改意见

热度:133   发布时间:2007-04-18 19:49:12.0
C语言习题答案求修改意见

题目是:写一函数,输入一行字符,将此字符串中最长的单词输出。
答案一:int alphabetic(char c) /* 判断当前字符是否字母,是返回1,否则返回0 */

{

if ((c>=’a’&& c<=’z’)||(c>=’A’&&c<=’Z’))

return(1);

else

return(0);

}

int longest(char string[])    /* 寻找最长单词的起始位置 */

{ int len=0,i,length=0,flag=1,place=0,point;

for(i=0;i<=strlen(string);i++)

if(alphabetic(string[i])) /* string[i]是字母 */

if(flag)  /* 前面不是字母 */

{ point=i;

flag=0;}

else  /*string[i]是字母,前面也是字母*/

len++;

else  /*string[i]不是字母*/

{ flag=1;

if(len>=length) /*以point位置开始的词如为当前最长的,记住其位置*/

{ length=len;

place=point;

len=0;

}

}

return(place); /*返回最长单词的起始位置*/

}

main( )

{

int i;

char line[100];

printf("Input one line:\n");

gets(line); /*读入一行文本*/

printf("\nThe longest word is :");

for(i=longest(line);alphabetic(line[i]);i++) /*输出最长的单词*/

printf("%c",line[i]);

printf("\n");

}

答案二:cechang(str1,word0)

char str1[100],word0[15];

{int i=0,j=0,t=0;

static char word1[15];

for(;str1[i]!='\0';i++)

{if(!(str1[i]>=97&&str1[i]<=122||str1[i]>=65&&str1[i]<=90))

{t=j;j=0;continue;}

word1[j]=str1[i];j++;

if(j>=t) strcpy(word0,word1);}

}

main()

{char str0[100],longword[15];

gets(str0);

cechang(str0,longword);

puts(longword);

}

为什么我两个在C FREE里面都检测出错,如果要改,应该怎么写?多谢了

搜索更多相关的解决方案: C语言  习题  意见  

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

自己先顶下,拜托大家了啊


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