例如:让二维数组为
1 2 3
2 3 5
7 8 9
然后输出必须是
1 2 3
3 5
9
使用简单的for循环
我想要语法。
答案 0 :(得分:6)
您的意思是要打印上三角子集吗?
我建议您在生成输出时使用宽度说明符(例如,对于printf为%4d
,对于iostreams为cout << setw(4) << x;
),以便对齐不依赖于内容。
然后遍历你的数组并测试你是否在上三角形。如果是,则输出值,如果否,则输出空格。到达每行的末尾时,输出换行符。
答案 1 :(得分:0)
对于表示为2D阵列的方阵
int arr[ N ][ N ];
元素
arr[ i ][ j ] where 0 <= i < N and 0 <= j < N
当且仅当 时,位于上对角线
是 所以,代码可以是i <= j
true
。bool isElemInUpperDiagonal( int row, int column ) {
return row <= column;
}
for( int i = 0; i < N; ++i ) {
for( int j = 0; j < N; ++j ) {
if( isElemInUpperDiagonal( i, j ) {
cout << arr[ i ][ j ];
}
else {
cout << " "; // space for non upper diagonal
}
cout << " "; // unconditional space
}
cout << "\n"; // newline after every row
}