| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1311 人关注过本帖
标题:请教一道题,我做了半天的做不出来
只看楼主 加入收藏
风中的承诺
Rank: 1
等 级:新手上路
帖 子:331
专家分:0
注 册:2004-10-31
收藏
 问题点数:0 回复次数:10 
请教一道题,我做了半天的做不出来

题目很简单是,就是

输入一行字符,将字符串中最长的单词输出

fun()

{......}

main()

{......}

格式,给个提示。

搜索更多相关主题的帖子: 字符 fun main 单词 
2004-11-06 19:45
lyn_gemini
Rank: 1
等 级:新手上路
帖 子:103
专家分:3
注 册:2004-9-15
收藏
得分:0 
弄一个变量存放目前最长的单词的长度,同时另一个变量存放目前这个单词的长度,
每输入一个字母就判断是不是一个新单词了,如果不是,
就在该对应该单词长度的变量上加一,如果是新单词,就判断上一个单词
的长度有没有超过了最大长度,如果超过那就保存这个新单词,如果
没有超过那以前那个最长的单词不变,

欢迎访问我的博客--*IT一粟*-- : http://lyn_gemini.
2004-11-06 19:53
风中的承诺
Rank: 1
等 级:新手上路
帖 子:331
专家分:0
注 册:2004-10-31
收藏
得分:0 

这一句如何实现?

每输入一个字母就判断是不是一个新单词了

[此贴子已经被作者于2004-11-06 21:31:10编辑过]


I love you not because of who you are, but because of who I am when I am with you!
2004-11-06 21:28
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

很简单啊!!如果下一个不是字母那么单词结束!!如果是的那么继续!!如果现在还不是单词开始那么当遇到字母时单词开始!!


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-06 21:58
心若在
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-21
收藏
得分:0 

要判断是不是单词必须有个单词库,进行比较;

要不就在在输入时做上记号 比如前后加个空格 或前后加数字等

我想你说的是第二种吧??如果第二种的话 你就直接用定义进行判断;

如果是第一种的话 那就麻烦了~~~~


我知道我菜 但我会尽我最大的努力去帮助别人!
2004-11-06 22:21
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

分而治之:

1。判断是不是一个真正的单词,而不是几个任意字母的组合,就需要一个单词库用作比较。

2。判断是不是最长,最简单的只需两个指针来定位就行了。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-06 23:52
心若在
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-21
收藏
得分:0 

# include <stdlib.h> # include <stdio.h>

# define LEN sizeof(char)

struct word { char c ; struct word*next ; };

int Decide(char c) { if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) { return 1 ; } else { return 0 ; } }

int Long(struct word*p) { int longest=0,len=1,door=1,sgin=0,teep,i=0 ; while(p!=NULL) { if(Decide(p->c)) if(door) { teep=i ; door=0 ; } else { len++; } else { door=1 ; if(len>=longest) { longest=len ; sgin=teep ; len=0 ; } } i++;

p = p->next; } return(sgin); }

main() { struct word*p_all,*p_fun,*head,*p_print ; char c ; int i=0,n ; head=p_all=(struct word*)malloc(LEN); do { c=getchar(); p_all->c=c ; p_fun=p_all ; p_all=(struct word*)malloc(LEN); p_fun->next=p_all ; }while(c!='\n');

p_fun->next=NULL ; p_print=head ; n=Long(head); while(p_print!=NULL) { i++; while(i>=n&&Decide(p_print->c)) { printf("%c",p_print->c);

p_print = p_print->next;

if (!Decide(p_print->c))

goto end; }

p_print = p_print->next; } end: getch(); }

用的是第二种理解

数组做好点 我主要是为了加强我对链表的操作能力 仅供参考~~~


我知道我菜 但我会尽我最大的努力去帮助别人!
2004-11-07 00:21
你好C语言
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-11-5
收藏
得分:0 
还挺好使的
2004-11-07 04:12
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

#include<stdio.h>

#include<string.h>

void fun(char *p)

{char *q,*s;int i,j,k,index=0,len=0;

for(i=0;i<strlen(p);i++)

{j=0;k=i;

if (p[k]!=' ') do {j++;k++;}

while(p[k]!=' ');

if(j>len) index=i;

i=k;

}

printf("The word is:");

for(i=index;p[i]!=' ';i++)

printf("%c",p[i]);

printf("\n");

}

void main()

{ char a[100];

printf("Input a string:");

gets(a);

fun(a);

getch();

}

没运行......


2004-11-07 09:06
veryleaves
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-11-7
收藏
得分:0 
[注意]有点问题
我输入number of my输出是my
2004-11-07 13:02
快速回复:请教一道题,我做了半天的做不出来
数据加载中...
 
   



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

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