题解 | #矩阵交换#
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
#include<stdio.h>
void swap_col_or_row(int arr[][10], char r, int a, int b,int n,int m);
void array_print(int arr[][10], int n, int m);
int main() {
int i = 0,j=0;
int m = 0, n = 0;
int k = 0, a = 0, b = 0;
char t = '0'; //控制变量
int arr[10][10] = {0};
scanf("%d %d", &n, &m); //输入m,n,第一行
//输入的第二行到n+1行
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf("%d", &arr[i][j]);
}
}
//输入K行,表示要执行k次操作
scanf("%d", &k);
for (i = 0; i < k; i++) {
//输入控制操作
getchar();//清除回车,防止读入\n
scanf("%c %d %d", &t, &a, &b);
//操作
swap_col_or_row(arr, t, a, b,n,m);
}
//打印
array_print(arr, n, m);
return 0;
}
void swap_col_or_row(int arr[][10], char t, int a, int b,int n,int m) {
int i = 0,temp = 0;
//判断r
if ('r' == t) {
//交换行
for(i=0;i<m;i++)
{
temp = arr[a-1][i];
arr[a-1][i] = arr[b-1][i];
arr[b-1][i] = temp;
}
} else if ('c' == t) {
//交换列
for(i=0;i<n;i++)
{
temp = arr[i][a-1];
arr[i][a-1] = arr[i][b-1];
arr[i][b-1] = temp;
}
}
}
void array_print(int arr[][10], int n, int m) {
int i = 0, j = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}

