全能的库库尔坎:帮忙看个C语言程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/10 12:11:06
#include<stdio.h>

int check(char letter)
{

if ((letter<='z'&&letter>='a')||(letter<='Z'&&letter>='A'))
return (1);
}
int longest(char string[])
{
int len=0;
int length=0;
int flag=1;
int place=0;
int i;
int point;
for ( i=0; i<strlen(string); i++)
if (check(string[i]))
if (flag)
{
point=i;
flag=0;
}
else len++;
else
{
flag=1;
if (len>length)
{
length=len;
place=point;
len=0;
}
}
return(place);
}

main()
{
char string[100];
int i;
printf("the longest word is :\n");
gets(string);
for ( i=longest(string); check(string[i]); i++)

printf("%c",string[i]);
printf("\n");
getch();
}

说明:为得输入字符中最长单词

给你修改了下,希望能帮上你
#include<stdio.h>
int length=0;/*定义全局变量*/
int check(char letter)
{
if ((letter<='z'&&letter>='a')||(letter<='Z'&&letter>='A'))
return 1;
else
return 0;/*缺省这个else语句,则下面if (check(string[i]))
语句永远为真*/
}
int longest(char string[])
{
int len=0;
int flag=1;
int place=0;
int i;
int point;
for (i=0;i<strlen(string); i++)
{
if (check(string[i]))
{
if (flag)
{
point=i;
flag=0;
len++;
}
else len++;
}
if (check(string[i])==0)
{
flag=1;
if (len>length)
{
length=len;
place=point;
len=0;
}
}
}
if(i==strlen(string)&&len>length)
length=len;/*当第一个单词为最长时*/
return place;
}
main()
{
char string[100];
int i,j;
gets(string);
printf("the longest word is :\n");
for(i=longest(string),j=i;i<length+j; i++) /*循环从初值执行到最长单词长度+初值*/
printf("%c",string[i]);
printf("\n");
getch();
}

没明白楼主意思

至少你程序有以下错误:
int check(char letter) /*很明显在主函数中string是数组string[]的首地址*/
{ /*那么在longest(string)中传递给形参的是数组,此函数中*/
/*的形参应该和实参向匹配吧。*/

if ((letter<='z'&&letter>='a')||(letter<='Z'&&letter>='A')) /*这2个括号内容一样的,那么再逻辑或就无意义了。*/
return (1);
}