C语言单词长度

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:43:44
请高人帮我看下我的程序错在哪里!谢谢!(请测试过之后告知)
程序中max是最长单词的长度;wn是计算单词的长度的变量;n是控制一个单词的开始或者结束;x,u是在数组中开始的位置;y,v是结束的的位置。
#include <stdio.h>
void main()
{
char a[50],ch;
int x,y,n=0,wn=0,u,v,i,max=0;
printf("please enter a string: ");
gets(a);
for (i=0;a[i]!='\0';i++)
{if (a[i]==' ') {y=i;n=1;if (wn>max) {max=wn;u=x;v=y;}
wn=0;}
else if (n==0) wn++;
if (wn==1) x=i;
if (wn==0) {x=0;y=0;n=0;}
}
for (i>=u;i<v;i++)
printf("%c",a[i]);
putchar(10);
}

for (i>=u;i<v;i++)
错了,应该是
for (i=u;i<v;i++)

另外,你的程序对最后一个单词的长度没有计算,应该在for (i=u;i<v;i++)前面加上
if (wn>max) {u=x;v=i;}

再另外,你的程序写的稍微复杂了点,你试试看再简化一下,用不了这么多变量的,循环里也不用这么多语句

嗯...那你为什么不把你那报的错发上来呢?