QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 789|回复: 3

小弟我又来问c语言的问题了!:)谢谢指教!:)

[复制链接]
发表于 2004-12-15 17:46:06 | 显示全部楼层 |阅读模式
[code:1]/*写一个函数,输入一行字符,将此字符串中最长的的单词输出*/
#define m 1000
main()
{
  int i;
  char a[m];
  printf("清输入一行字符,每个单词用空格隔开:");
  for(i=0;a[i]=getchar()!='\n';i++)
    a[i]='\0';
    tongji(a);
}
tongji(char b[m])
{
  int j,k;
  char c[m];
  for(j=0;b[j]!='\0';j++)
    if(b[j]==' ')
      for(k=0;b[k]!=' ';k++)
        c[k]=b[k];[/code:1]
我只能写到这里,往下我真不知道该怎么写了,我觉得可能会用到函数的递归调用,但是我确实没有思路了!谢谢各位老兄帮忙,谢谢了!:)
发表于 2004-12-15 18:25:57 | 显示全部楼层
不用递归,用冒泡法的第一次过滤.
char temp[单词最大长度+1]
将第一个单词放入temp
将第二个单词的长度跟temp比较,如果比temp长就用把'第二个单词拷贝到te m p 里,如果比它短就不用管.
后面的单词都这样处理.
另外要处理的就是单词长度一样的情况.
回复

使用道具 举报

 楼主| 发表于 2004-12-15 18:44:18 | 显示全部楼层
好的 !:)我知道 了 !:)谢谢你!:)
回复

使用道具 举报

发表于 2004-12-16 16:20:33 | 显示全部楼层
其实也不用辅助的空间,只要设4个整数,一个保留上一个最长单词的头,一个用来保存长度,一个用来保存当前单词的头,还有一个用来记数,这样就省去了挪单词的时间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 21:44 , Processed in 0.091085 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表