#include”stdio.h“
#include"string.h"
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int main()
{
char s[10];
char b[10];
char d[10][10];
int len1,len2,i,j,p,q,r;
scanf("%s%s",s,b);
len1=strlen(s);
len2=strlen(b);
for(i=0;i<=len1;i++)
d[i][0]=i;
for(j=0;j<=len2;j++)
d[0][j]=j;
for(i=1;i<=len1;i++)
{
for(j=1;j<=len2;j++)
{
if(s[i]==b[j])
{
d[i][j]=d[i][j];
}
else{
p=d[i][j-1]-'0'+1;
q=d[i-1][j]-'0'+1;
r=d[i-1][j-1]-'0'+1;
d[i][j]=max(p,max(q,r))+'0';
}
}
}
printf("%c",d[len1][len2]);
return 0;
}
第一行的引号写成全角了。
这个不说,你这种死算的算法也不能作数。应该用动态规划(后缀数组)去解。