提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
题目 BC139 矩阵交换
链接: link
思路
- 为保持良好习惯,尽量少定义全局变量,于是乎,我们用一个变量定义一个
- 定义一个二维数组,输入整数m,n 确定二维,然后用两层 for 循环输入
提示:VS2022等编译器没有支持C99变长数组的这条规则,所以可以根据具体情况给出合理的数组大小 - 输入k,再输入字符t,和a,b的值
提示:输入字符t前,因为刚输入完k,会产生一个缓冲区,需要用getchar()去掉空格,或者在输入字符t前输入一 个空格
代码呈现
#include <stdio.h>
int main() {
int n, m;
scanf("%d%d", &n, &m);
int arr[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr[i][j]);
}
//printf("\n");
}
int k;
scanf("%d", &k);
for (int i = 0; i < k; i++) {
char t;
scanf(" %c", &t);//用空格抵消掉缓冲区
int a, b;
scanf("%d %d", &a, &b);
//printf("\n");
//交换行
if (t == 'r') {
for (int j = 0; j < m; j++) {
int tmp = arr[a - 1][j];
arr[a - 1][j] = arr[b - 1][j];
arr[b - 1][j] = tmp;
}
}
//交换列
else if (t == 'c') {
for (int j = 0; j < n; j++) {
int tmp = arr[j][a - 1];
arr[j][a - 1] = arr[j][b - 1];
arr[j][b - 1] = tmp;
}
}
}
//输出
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}