不能进行字符输入,一输入就跳出
#include<stdio.h>
#include <math.h>
#include <string.h>
#include<algorithm>
using namespace std;
int main(){
char a[1005],b[1005];
int f[1005][1005];
int len1,len2;
while (scanf("%s%s",a,b)!=EOF){
len1=strlen(a);
len2=strlen(b);
memset(f,0,sizeof(f));
for (int i=1;i<=len1;i++)
for (int j=1;j<=len2;j++){
if (a[i-1]==b[j-1]){
f[i][j]=f[i-1][j-1]+1;
}else {
f[i][j]=max(f[i-1][j],f[i][j-1]);
}
}
printf("%d\n",f[len1][len2]);
}
return 0;
}
看下你文件属性是不是设成只读了
加个头文件cstring看看。
cstring和string.h不是同个东西
scanf("%s%s",a,b) 裡的兩個%s間沒有空白,分不出字串該放a 還是 b...
你这个是输入两个字符串,那么,你在两个字符串之间加一个空格,语句就可以识别你输入的a和b了,如图:
楼上已基本说明问题所在,不过还有两点建议给楼主:
①建议用安全性更佳的scanf_s("%s %s", a, (unsigned)_countof(a), b, (unsigned)_countof(b))
②栈内存是非常有限的,不建议定义int f[1005][1005];这么大的数组,一般没特别设定的编译器直接会爆出堆栈溢出