在C++中许多新手会忘记在累加时初始化,就会产生以上的错误,以下是一个错误实例:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, m, k, a[101][101], b[101][101], c[101][101];
cin >> n >> m >> k;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
cin >> a[i][j];
}
}
for(int i = 1; i <= m; i++) {
for(int j = 1; j <= k; j++) {
cin >> b[i][j];
}
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= k; j++) {
for(int o = 1; o <= m; o++) {
c[i][j] += a[i][o] * b[o][j];
}
}
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= k; j++) {
cout << c[i][j] << " ";
}
cout << endl;
}
return 0;
}
事实上,正确的写法应该在20行前加上c[i][j]=0,AC。所以在累加时一定要初始化!!!