编程将二维数组中每一列右移。最右边一列移至最左边。(假设二维数组不超过10*10) 要求:不能直接输出,要改动数据在二维数组中的存储位置。 提示:先将最右边一个数据移至临时变量,其他数据全部右移一位。最后再把移出的数据放在最左边位置。 ***输入提示: "请输入行数:" "请输入列数:" "请输入%d*%d个数据:\n" ***输入格式:"%d" ***输出提示: "结果是 :\n" ***输出格式: "%6d" 程序运行示例: 请输入行数:2↙ 请输入列数:3↙ 请输入2*3个数据: ↙ 1 2 3↙ 3 4 5↙ 结果是:↙ 3 1 2↙ 5 3 4↙
时间: 2024-02-24 16:55:54 浏览: 99
下面是程序的实现:
```C++
#include <iostream>
using namespace std;
int main() {
int n, m;
cout << "请输入行数:";
cin >> n;
cout << "请输入列数:";
cin >> m;
int a[10][10];
cout << "请输入" << n << "*" << m << "个数据:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
// 右移每一列
for (int j = m - 1; j > 0; j--) {
// 取出最右边一列
int temp = a[0][j];
// 其他数据右移
for (int i = 0; i < n; i++) {
a[i][j] = a[i][j - 1];
}
// 将最右边的数据放到最左边
a[0][0] = temp;
}
// 输出结果
cout << "结果是:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << setw(6) << a[i][j];
}
cout << endl;
}
return 0;
}
```
程序首先读入行数和列数,然后读入二维数组的数据。接着使用两层循环遍历每一列,在每一列中,先将最右边的数据取出来放到临时变量中,再将其他数据右移一位。最后,将最右边的数据放到最左边的位置上。最后,程序使用两层循环输出二维数组中的数据,输出时使用 setw 函数设置每个元素的输出宽度为 6,以保证输出对齐。
阅读全文