黑马程序员技术交流社区

标题: 判断2个字符串的足诶大公式子 [打印本页]

作者: HML    时间: 2014-7-26 13:24
标题: 判断2个字符串的足诶大公式子
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main()
  4. {
  5.     char chang[]="nbitheimanb";
  6.    
  7.     char duan[]="itheia";      //要判断的字符串
  8.    
  9.     int i = 0, j = 0;
  10.    
  11.     printf("最大公式子是:");
  12.    
  13.     for (; i < strlen(duan);  ) {          //遍历数组chang[]所有元素
  14.         for (; j < strlen(chang);  ) {     //遍历数组duan[]所有元素
  15.             
  16.             if (duan[i] == chang[j]) {     //判断是否连续有相同的元素
  17.                 printf("%c", duan[i]);
  18.                 break;                     //只有第一次相同就结束当前判断
  19.             }
  20.             j++;                           //j加1
  21.             
  22.             if (i == (strlen(duan) - 1)) { //当i最大值式,判断结束,后面不需要了
  23.                 printf("\n");              //并退出main函数
  24.                 return 0;
  25.             }
  26.         }
  27.         i++;
  28.     }
  29.     return 0;
  30. }
复制代码
以上式小菜我,编写的代码;判断已知的两个字符串中的最大公式子,还能精简吗?

作者: fantacyleo    时间: 2014-7-26 14:19
先不说精简,你这算法就是错的,实现不了预期功能。如果chang[] = "nbitheimanb" duan[] = "aitheia",你的输出结果就是错的
作者: HML    时间: 2014-7-26 15:12
fantacyleo 发表于 2014-7-26 14:19
先不说精简,你这算法就是错的,实现不了预期功能。如果chang[] = "nbitheimanb" duan[] = "aitheia",你的 ...

可运行结果为“ithei”。。求详细解答{:3_69:}
作者: fantacyleo    时间: 2014-7-26 15:32
HML 发表于 2014-7-26 15:12
可运行结果为“ithei”。。求详细解答

按你设定的两个字符串,结果是对的。换成我给出的两个,结果就不对了
作者: HML    时间: 2014-7-27 16:06
fantacyleo 发表于 2014-7-26 15:32
按你设定的两个字符串,结果是对的。换成我给出的两个,结果就不对了

那要怎么办才能判断,任意2个字符串的最大公式子呢?如果2个字符串中有2个公式子,并且长度一样、都是最长的公式子,又要怎么判断,还有其他的一些,情况。越想越复杂,超出我所学范围了>_<
作者: fantacyleo    时间: 2014-7-27 16:10
HML 发表于 2014-7-27 16:06
那要怎么办才能判断,任意2个字符串的最大公式子呢?如果2个字符串中有2个公式子,并且长度一样、都是最长 ...

完全没有超出你所学的C语言知识范围。这不是编程的问题,而是思路的问题。你可以试着先用自然语言把思路写下来,我觉得你是没有形成思路或没有能确定思路是正确的就开始写代码了。
作者: HML    时间: 2014-7-27 17:49
fantacyleo 发表于 2014-7-27 16:10
完全没有超出你所学的C语言知识范围。这不是编程的问题,而是思路的问题。你可以试着先用自然语言把思路 ...

确实比较赶时间,我想了一下你吧itheia前面加个字母a。确实问题大了,思路不对,写出的代码针对性太强。感谢指导!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2