1.动态规划解体方法;
2.前几次下标错误。复制代码时一定要检查下标;
3.第一次将伪代码转换成代码。
以下是代码
#include <stdio.h> #include <string.h> //using namespace std; int main() { int i,j,m,n; char x[1010],y[1010]; while( scanf("%s%s",x,y) != EOF ) { m = strlen(x); n = strlen(y); int c[m+1][n+1]; memset( c, 0, sizeof( c ) ); for( i = 0 ; i < m ; i++ ) { for( j = 0 ; j < n ; j++ ) { if( x[i] == y[j] ) c[i + 1][j + 1] = c[i][j] + 1; else if(c[i][j + 1] > c[i + 1][j] ) c[i + 1][j + 1] = c[i][j + 1]; else c[i + 1][j + 1] = c[i + 1][j]; } } printf("%d\n",c[m][n]); /* for(i=0; i<=m; i++) { for(j=0; j<=n; j++) { printf("%d ",c[i][j]); } printf("\n"); } */ } return 0; }