#include<iostream> #include<string> #include<algorithm> using namespace std; int zh(string p,string q) { int s=0,b; for(int i=1;i<=p.size();i++) { b=p[i]-q[i]; s+=abs(b); } return s; } int main() { int n,l; cin>>n>>l; int minn=1e9; string m[1005]; for(int i=1;i<=n;i++) { cin>>m[i]; } for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;i++) { if(minn>zh(m[i],m[j])) { minn=zh(m[i],m[j]); } } } cout<<minn; return 0; }
时间: 2023-07-14 11:05:26 浏览: 69
这段代码是一个简单的字符串比较程序。它首先读取两个整数 n 和 l,表示字符串数组的大小和每个字符串的长度。然后,它读取 n 个字符串存储在 m 数组中。
接下来,它使用一个嵌套的循环来比较所有字符串对之间的差异,并计算它们之间字符差的绝对值之和。最后,它输出最小差异值。
然而,这段代码存在一个错误。在第二个循环的内部,变量 j 的递增应该是 j++ 而不是 i++。修正后的代码如下所示:
```cpp
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int zh(string p, string q) {
int s = 0, b;
for (int i = 0; i < p.size(); i++) {
b = p[i] - q[i];
s += abs(b);
}
return s;
}
int main() {
int n, l;
cin >> n >> l;
int minn = 1e9;
string m[1005];
for (int i = 0; i < n; i++) {
cin >> m[i];
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (minn > zh(m[i], m[j])) {
minn = zh(m[i], m[j]);
}
}
}
cout << minn;
return 0;
}
```
这样修复后,该程序将正确计算字符串之间的差异并输出最小差异值。
阅读全文