gpt4 book ai didi

c++ - 难以对 2D vector 的元素求和

转载 作者:行者123 更新时间:2023-11-30 04:26:58 25 4
gpt4 key购买 nike

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

相关代码为:

int main(){
while(cin){

int n = 0;
int sum = 0;

cout << "\n\nEnter 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 of 3,它将打印出 368202。

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

最佳答案

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

额外的 EPIC-PHUNZIES 内容:我是怎么想出来的?好吧……还能是什么?总和输出正确,所以后面一定有问题。输出 sum 后唯一的东西是什么?您输出 '\n'... 那么,这有什么问题吗?然后 BAM! 问题解决了。

关于c++ - 难以对 2D vector 的元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com