| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3905 人关注过本帖, 1 人收藏
标题:求最长公共子序列的c代码
取消只看楼主 加入收藏
我说狗阳啊
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-16
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:1 
求最长公共子序列的c代码
按照书上的算法写的代码,但是结果总是不对,求大神帮忙看一下
#include <stdlib.h>
#include <string.h>

#define OK 1
#define Error 0
#define OVERFLOW -2
#define INFEASIBLE -1
#define TURE 1
#define FALSE 0


typedef int Status;
typedef int SElemtype;


#define ATACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OPTR 10
#define OPND 10
Status lcs(char A[],char B[]);


#endif // LCS_H_INCLUDED

Status lcs(char A[],char B[])
{
    int i,j,L[20][20],m,n;
      n=strlen(A);
      m=strlen(B);
    for(i=0;i<n;i++)
        L[i][0]=0;
    for(j=0;j<m;j++)
        L[0][j]=0;
    for(i=1;i<=n;i++)

   {
       for(j=1;i<=m;j++)
        if('A[i]'=='B[j]')
            L[i][j]=L[i-1][j-1]+1;
         else
            {
                if(L[i][j-1]>L[i-1][j])
                  L[i][j]=L[i][j-1];
             else L[i][j]=L[i-1][j];
         }
   }
       return L[n][m];

}
#include <iostream>
#include"LCS.h"
#include <string.h>

using namespace std;

int main()
{

    char A[20],B[20];
    int i,n,m,MAX;
    printf("请输入一个字符串A:");
      gets(A);
    printf("请输入一个字符串B:");
      gets(B);
    MAX=lcs(A,B);
    printf("最长公共子序列的长度为:%d",lcs(A,B));

}
搜索更多相关主题的帖子: include define int char for 
2018-05-16 17:14
我说狗阳啊
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-16
收藏
得分:0 
谢谢啦,我刚才找到问题在哪了
把 if('A[i]'=='B[j]')
改成 if(A[i]==B[j])就行了
2018-05-17 16:19
快速回复:求最长公共子序列的c代码
数据加载中...
 
   



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

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