我有一个向量矢量给我一个n×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为3,它将打印出368202。
有什么想法吗?我在Code :: Blocks中尝试了调试器没有成功。
答案 0 :(得分:2)
您输出' \n'
。请注意\n
之前的空格。这是两个字符/一个字符串。但是,你将'
放在它周围意味着它将两个字符解释为一个字符会给你带来奇怪的结果。将其更改为" \n"
。
' \n'
......好吧,那有什么不对? BAM!问题解决了。