老师让小A给班里同学重新排座位,指出了两列进行对调,矩阵上每个数都对应一个同学的学号,小A看这些学号看的头晕眼花,你能帮助他编个程序,输出换座位后的结果吗1.8c++
时间: 2024-09-09 15:17:08 浏览: 38
当然可以。在C++中,我们可以创建一个二维数组或者矩阵来表示学生的座位,并编写一个函数来交换指定列的学生位置。这里是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 定义学生座位矩阵,假设我们有4行5列
const int ROWS = 4;
const int COLS = 5;
void swapColumns(int seats[ROWS][COLS], int col1, int col2) {
for (int i = 0; i < ROWS; ++i) {
// 临时存储col1位置的学生学号
int temp = seats[i][col1];
// 将col1位置的学生移动到col2
seats[i][col1] = seats[i][col2];
// 将col2位置的学生移动回原位
seats[i][col2] = temp;
}
}
int main() {
// 初始化一个4x5的矩阵,假设座位编号从1开始
int seats[ROWS][COLS] = { {1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20} };
// 指定需要对调的两列索引,例如col1=1, col2=3
int col1 = 1, col2 = 3;
// 执行座位交换
swapColumns(seats, col1, col2);
// 输出新的座位矩阵
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
cout << "座" << (j + 1) << ": " << seats[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
阅读全文