C高手进,出了点问题.

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:01:55
这有段代码,这段程序是输入一个字符串, 将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正,但调试改正中不得增删语句。

int alph(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0); /* find 1 */
}
int longest(char str)
{
int len=0,i,length=0,flag=1,point,place;
for(i=0;i<=strlen(str);i++)
if(alph(str[i]))
if(flag)
{
flag=0;
point=i;
}
else
len++;
else /* Find 2 */
{
flag=0;
if(len>length)
{ length=len;
place=point;
len=0; }
}
return(place);
}
main( )
{
int i;
char line[100];
printf("Enter string\n");
gets(line);
printf("the longest is:");
fo

你的程序本身就有问题,我没有对你的程序进行删改,现在能运行了,但是你的算法有问题,你自己改进吧!~
#include <stdio.h>
#include<string.h>

int alph(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0); /* find 1 */
}
int longest(char str[])
{
int len=0,i,length=0,flag=1,point,place;
for(i=0;i<=strlen(str);i++)
if(alph(str[i]))
{if(flag)
{
flag=0;
point=i;
}
else
len++; }
else /* Find 2 */
{
flag=0;
if(len>length)
{ length=len;
place=point;
len=0; }
}
return(place);
}
void main( )
{
int i;
char line[100];
printf("Enter string\n");
gets(line);
printf("the longest is:");
for(i=longest(line);alph(line[i]);i++)
printf("%c",line[i]);
printf("\n");
}

else