难以对 2D 矢量的元素求和

Difficulty summing the elements of a 2D vector

本文关键字:元素 求和 2D      更新时间:2023-10-16

我有一个向量向量,它给了我一个 n x n 矩阵。我正在使用 for 循环对矩阵中的所有元素求和,我得到了奇怪的结果。

相关代码为:

int main(){
while(cin){
int n = 0;
int sum = 0;
cout << "nnEnter a size (n) for the matrix: ";
cin >> n;
vector<vector<int> > matrix ( n, vector<int> ( n ) );
int k = 0;
for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        matrix[i][j] = k++;
}
for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        cout<< setw ( 3 ) << matrix[i][j] <<' ';
        cout<<'n';
}
for ( int i = 0; i < n; i++ ) {
    for ( int j = 0; j < n; j++ )
        sum += matrix[i][j];
}
cout << "nThe sum of the elements of the matrix is: " << sum << ' n';
}
}

所以,奇怪的是...当它打印"sum"的值时,出于某种原因,我在值后附加了"8202"。如果我给它 n = 1,它将打印出 08202,或者对于 n 的 3,它将打印出368202。

有什么想法吗?我在 Code::Blocks 中尝试了调试器,但没有成功。

你输出' n' .请注意 n 前面的空格。这是两个字符/一个字符串。但是,您将'放在它周围,这意味着它将两个字符解释为一个字符,从而为您提供奇怪的结果。将其更改为 " n" .

奖励史诗-幻影内容:我是怎么想出来的?井。。。还能是什么?正确输出的总和,因此之后一定有问题。输出总和后唯一的事情是什么?您输出' n'...嗯,这有什么问题?砰!问题解决了。