警钟长鸣!
查看原帖
警钟长鸣!
1385447
Cjq120326楼主2024/10/15 19:00

事故现场!

在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]=0AC所以在累加时一定要初始化!!!

2024/10/15 19:00
加载中...