kevinde2022 发表于 2022-12-2 12:09:40

找出最长单词

不明白的地方是最后一个else里 len =0为什么写在if里,不管新单词长度是不是比当前最长的长,len应该都归0啊我觉得。
#include <stdio.h>
#include <math.h>
#include <string.h>
char *gets (char *str);
int main(void)
    { int alphabetic (char);
      int longest(char []);
      int i;
      char line;
      gets(line);
      for (i = longest(line); alphabetic(line);i++)
      printf("%c",line);
    }
int alphabetic (char c)
    {
      if ((c>='a' && c<='z')||(c>='A' && c<='Z'))
      return 1;
      else
      return 0;
    }
int longest(char str[])
    {int len = 0,length = 0, flag = 1, place = 0, point,i;

   for (i = 0; i<strlen(str);i++)
         if (alphabetic(str))
            if (flag)
            {point = i;
            flag = 0;}
            else
            len++;
         else
            {
             flag=1;
             if (len>=length)
               {length = len;
                place = point;
                len = 0;}
            
            }
      return place;

    }
   

kevinde2022 发表于 2022-12-2 12:17:00

if (len>=length)
               {length = len;
                place = point;
               }
len = 0; 这样放在外面 结果也是一样的

kevinde2022 发表于 2022-12-2 13:34:26

jackz007 发表于 2022-12-2 12:54
编译运行实况:

找出最长单词,不是数字,而且我的是书上的代码,我只是不理解那一句

kevinde2022 发表于 2022-12-2 13:57:07

我不明白的地方是最后一个else里 len =0为什么写在if里,不管新单词长度是不是比当前最长的长,len应该都归0啊我觉得。不是说我需要一个新代码,想要理解答案的意思。

jhq999 发表于 2022-12-2 15:17:26

kevinde2022 发表于 2022-12-2 13:57
我不明白的地方是最后一个else里 len =0为什么写在if里,不管新单词长度是不是比当前最长的长,len应该都归 ...

相信自己
你差的就是个样例
aaa aa aaaa aaaaaa

kevinde2022 发表于 2022-12-2 15:51:28

jhq999 发表于 2022-12-2 15:17
相信自己
你差的就是个样例
aaa aa aaaa aaaaaa

哈 我的感觉就是答案是不是错了,但是运行又没有问题。。。
页: [1]
查看完整版本: 找出最长单词