| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 344 人关注过本帖
标题:求最长的公共子序列
只看楼主 加入收藏
燃高
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:140
注 册:2011-12-13
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:2 
求最长的公共子序列
#include<stdio.h>
#include<math.h>
int fun(char a[])
{
    int i;
    while(a[i]!='\0')
        i++;
    return i;
}
main()
{
    int n,i,j,k1,k2,t,t3,max[10],t1,t2;
    char a[10][20],b[10][10];
    printf("请输入你要输入的组数\n");
    scanf("%d",&n);
    printf("请输入你要输入的数据\n");
    for(i=1;i<=n;i++)
    {
        scanf("%s%s",a[i],b[i]);
    }
     for(i=1;i<=n;i++)           // 数组的循环
     {
         t3=0;
         t1=fun(a[i]);
         t2=fun(b[i]);
         for(k1=0;k1<t1;k1++)       // 字符的循环
         {   
             for(k2=0;k2<t2;k2++)      // 字符的循环
             {   
                  t=0;
                     while(1)
                     {
                         if(a[i][k1+t]!=a[i][k2+t])   
                             break;
                              t++;   // 判断有多少个相等
                          if(a[i][k1+t+1]=='\0')
                            break;
                          if(a[i][k2+t+1]=='\0')
                            break;
                     }  
               if(t>t3)
               t3=t;
             }
         }
         max[i]=t3;
     }
     for(i=1;i<=n;i++)
         printf("%d\n",max[i]);
}
  我不知道自己哪里错了。而且我感觉自己的算法是很不行。另外的算法,可以提供,我需要思路。
搜索更多相关主题的帖子: include return 
2012-03-19 12:32
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:11 
动态规划
http://baike.baidu.com/view/2020307.htm
2012-03-19 12:34
燃高
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:140
注 册:2011-12-13
收藏
得分:0 
回复 楼主 燃高
这是什么恩!!和那个有什么联系呢!!!
2012-03-20 20:14
快速回复:求最长的公共子序列
数据加载中...
 
   



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

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