爱问知识人 爱问教育 医院库

一个C语言的问题

首页

一个C语言的问题

编写一个函数,输入一行字符,将字符串中最长的单词输出
我看了标准答案下,标准答案是以下代码:
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
     int alphabetic(char);
     int longest(char []);
     int i;
     char line[100];
     printf("input onr line:\n");
     gets(line);
     printf("The longest word is:");
     for(i=longest(line);alphabetic(line[i]);i++)
     printf("%c",line[i]);
     printf("\n");
     getch();
     }
int alphabetic(char c)
{
    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]))
if(flag)
{point=i;
flag=0;
}
else
len++;
else
{
     flag=1;
     if(len>=length)
     {
                     length=len;
                     place=point;
                     len=0;
                     }
                     }
                     return(place);
                     }
这个代码在alphabetic(string[i])返回0的时候,并且len<length的情况下根本没有初始化len,所以我觉得是错的,但是我运行了下,发现这个代码是正确的,谁能告诉下是怎么回事啊?
哪个大哥能解决我的疑问啊?我完全是自学,非常需要你们的帮助,谢谢了啊

提交回答
好评回答
  • 2008-11-21 00:38:22
    诚如你所说,这个程序是有问题的.
    测试用例如下:
    mysql java jsp
    则运行结果为:jsp
    运行结果与要求的结果不符合.
    你指出的就是这个程序问题的所在:当丢弃一个短单词时,没有将单词长度的记数器归0.
    修改如下:
    int longest(char string[]) 
    {
    	int len=0,i,length=0,flag=1,place=0,point; 
    	for(i=0;i=length) { 
    				length=len; 
    				place=point; 	 
    			} 
    			len=0; //<=将这个语句移出if之外
    		} 
    	return(place); 
    }
    通过对各if条件的测试, 均未发现异常.
    若测试出现异常,请提供测试用例.

    苦***

    2008-11-21 00:38:22

其他答案

    2008-11-21 16:26:58
  • 前两天登录过一个网站,里面也好多关于IT行业的知识提供,去那试试吧

    l***

    2008-11-21 16:26:58

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):