最长公共子序列没有输出是怎么回事啊?

这是我的代码:
#include
#include
using namespace std;
void LCSLength(int alength, int blength, int maxlength[10][10], int value[10][10], char a[10], char b[10]);//用来计算最长公共子序列
void PrintLCS(int value[10][10], char a[10], int alength, int blength); //用来打印最长公共子序列
void main()
{
char a[10], b[10]; //a,b两个数组用来存放两个序列
int maxlength[10][10], value[10][10]; //maxlength用来存放当前最长公共子序列的长度,value用来存放标志位,标志位来判断是哪种情况。
int alength, blength; //alength,blength存放a,b数组的长度

cout << "Please input two arrays:" << endl;
cin >> a >> b;

alength = strlen(a);
blength = strlen(b);

LCSLength(alength,blength,maxlength,value,a,b);
PrintLCS(value,a,alength,blength);

}

void LCSLength(int alength,int blength,int maxlength[10][10],int value[10][10],char a[10],char b[10])
{
int i, j;
for (i = 0; i < alength; i++)
maxlength[i][0] = 0;
for (i = 0; i < blength; i++)
maxlength[0][i] = 0;
for (i = 1; i < alength; i++)
{
for (j = 1; j < blength; j++)
{
if (a[i-1] == b[j-1])
{
maxlength[i][j] = maxlength[i - 1][j - 1] + 1;
value[i][j] = 1;
}
else if (maxlength[i][j - 1] > maxlength[i - 1][j])
{
maxlength[i][j] = maxlength[i][j - 1];
value[i][j] = 2;
}
else
{
maxlength[i][j] = maxlength[i - 1][j];
value[i][j] = 3;
}
}
}
}

void PrintLCS(int value[10][10],char a[10],int alength,int blength)
{
if (alength == 0 || blength == 0)
return;
if (value[alength][blength] == 1)
{
PrintLCS(value, a, alength - 1, blength - 1);
cout << a[alength - 1];
}
else if (value[alength][blength] == 2)
{
PrintLCS(value, a, alength, blength - 1);
}
else
{
PrintLCS(value, a, alength-1, blength);
}
}
//请大神帮忙看一下

你这饿就这点注释。。我真是醉了。。,可能是我太渣了。

给定字符串  输出最大的公共子序列  如果有多个输出任意一个  如果没有就输出0
#include
#include
int a[100][100];
char str1[1000];
int k=0,flag;
void ok(int m,int n)
{
    //printf("%d %d\n",m,n);
    if(m==0||n==0)
        retu......
答案就在这里:输出最长公共子序列
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

void LCSLength(int alength,int blength,int maxlength[10][10],int value[10][10],char a[10],char b[10])
{
int i, j;
for (i = 0; i <=alength; i++) __ !!!!_________
maxlength[i][0] = 0;
for (i = 0; i < =blength; i++) !!!!
maxlength[0][i] = 0;
for (i = 1; i <= alength; i++) !!!!!
{
for (j = 1; j <= blength; j++) !!!!
........
}
}
LZ 这四个打感叹号的地方加上=就可以了。 其实maxlength,和value数组都是从1开始记数的,所以你maxlength与value都少了1组数据。加上就行了。