| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:C语言新手问个问题
只看楼主 加入收藏
hhpp33tt55p
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-20
收藏
 问题点数:0 回复次数:2 
C语言新手问个问题
编写一个函数,输入一行字符,将字符串中最长的单词输出。大家帮忙看下我的代码错在哪里,我查了很久都没看出来
#include<stdio.h>
#include<conio.h>
#include<string.h>
int zsh(char str[])
{
int i,j=0,n=0,c;
for(i=0;i<strlen(str);i++)
{
if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
j++;
else
{
if(j>n)
{n=j;
c=i-n;}
j=0;
}

}
return (c);
}
int main(void)
{
char str[80];
int i;
printf("请输入一个字符串:\n");
gets(str);

printf("字符串中最长的单词为:\n");
for(i=zsh(str);(str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z');i++)
printf("%c",str[i]);
printf("\n");
getch();
}
我看了标准答案下,标准答案是以下代码:
#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,所以我觉得是错的,但是我运行了下,发现这个代码是正确的,谁能告诉下是怎么回事啊?
哪个大哥能解决我的疑问啊?我完全是自学,非常需要你们的帮助,谢谢了啊
搜索更多相关主题的帖子: C语言 
2008-11-20 17:08
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
int len=0,i,length=0,flag=1,place=0,point; 这不是初始化吗?
下面的这段代码是返回那长单词在原字符串中的下标位置,另外找单词的算法在你的程序里可能没有考虑吧……

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2008-11-20 17:49
huangjie
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-23
收藏
得分:0 
你的单词是什么意思,是英语单词, 还是随便的有空白符隔开一个字符串,还有程序最好还是有注释,要不这样看程序很辛苦!
2008-11-23 16:10
快速回复:C语言新手问个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025237 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved