我有一个向量向量,它给了我 anxn 矩阵。我正在使用 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,或者对于 3 的 n,它将打印出 368202。
有任何想法吗?我在 Code::Blocks 中尝试了调试器,但没有成功。