A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  • fuck“搞了一下午,加一晚上,没搞出这破题,写了一下午错误代码,早知道直接先百度了.还是洗洗睡吧.







9 个回复

倒序浏览
代码太冗余。
回复 使用道具 举报 1 0
别着急,慢慢来
回复 使用道具 举报 1 0
你看看谭浩强的C语言有这个
回复 使用道具 举报 1 0
继续加油····
回复 使用道具 举报 1 0
加油加油。。。。。。
回复 使用道具 举报
这题;思路不难啊,遍历字符串,将单词放到数组中,比较数组中的每个字符串长度,找出最大的,而且你这里字符串都已经给定了,如果字符串是从键盘接收的会有点麻烦
回复 使用道具 举报
遍历字符数组,如果遇到空格,就将前面的内容放到数组中,最后比较三个数组长度,刚开始学,我得思路是这样的,希望可以帮到您
回复 使用道具 举报
加油,静下心慢慢研究吧。
回复 使用道具 举报
楼主看看我当年的思路
  1. /*
  2. 5、 在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
  3. */

  4. #include<stdio.h>

  5. int main()
  6. {
  7.     //定义并初始化整形len,maxlen
  8.     int len = 0, maxlen = 0;
  9.     //以及要用到的指针和字符串数组s【】,单词的s1【】
  10.     char *p,*p1,str[1024],s[1024],s1[64];
  11.     //输入字符串提示用户输入
  12.     printf("请输入一句只含字母和空格的英文");
  13.     //获取字符串
  14.     gets(str);
  15.    
  16.     // 给字符串最后加个空格
  17.     for (int i = 0; i <= strlen(str); i++)
  18.     {
  19.         s[i] = str[i];
  20.         s[strlen(str)] = ' ';
  21.     }
  22.    
  23.     //利用指针遍历字符串
  24.     for(p1 = s; *p1 != '\0'; p1++)
  25.     {
  26.         //没遇到空格,单词长度len就增1
  27.         if(*p1 != ' ' && *p1 != '\0')
  28.             len++;
  29.         //遇到空格时
  30.         else
  31.         {
  32.             //取最长单词的数为maxlen,后面遇到len比maxlen大,就互换
  33.            if(len > maxlen)
  34.            {
  35.                maxlen = len;
  36.                //这是为了找出并标记最长单词在内存初位置方便后面遍历输出
  37.                p = p1 - len;
  38.                //计算下一个单词长度前len重新赋值0
  39.                len = 0;
  40.            }
  41.         }
  42.     }
  43.     //遍历出最长的单词s1
  44.     for(int i = 0;i < maxlen;i++)
  45.     {
  46.         s1[i] = *(p + i);
  47.     }
  48.     //字符串最后是个‘0’;
  49.     s1[maxlen] = '\0';
  50.     //输出得到结果
  51.     printf("句中最长单词是:%s\n",s1);

  52.      return 0;
  53. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马