题解 | 矩阵交换
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
#include <stdio.h>
int main() {
int n,m,k,a,b;
char t;
scanf("%d %d",&n,&m);
int arr[10][10] = {0};
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
scanf("%d",&arr[i][j]);
}
}
scanf("%d",&k);
//行交换
while(k--)
{
scanf(" %c %d %d",&t,&a,&b);
if(t == 'r')
{
int tmp[10]= {0};
for(int j = 0; j < m; j++)
{
tmp[j] = arr[b-1][j];
arr[b-1][j] = arr[a - 1][j];
arr[a-1][j] = tmp[j];
}
}
//列交换
else if(t == 'c')
{
int tmp[10]= {0};
for(int i = 0; i < n; i++)
{
tmp[i] = arr[i][b-1];
arr[i][b-1] = arr[i][a-1];
arr[i][a-1] = tmp[i];
}
}
}
//输出
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
查看7道真题和解析