输入两个正整数m和n( 1≤m,n≤6),输入该m行n列二维数组a中的元素,将该二维数组a中的每个元素向右移一列,最后一列换到第一列,移动后的数组存到另一个二维数组b中,按矩阵形式,输出b,用C语言写
时间: 2024-12-29 10:28:22 浏览: 23
在C语言中,你可以使用两层循环来实现这个功能,首先遍历原数组的每一行,然后将这一行的最后一个元素复制到第一个位置,其余元素依次向后移一位。以下是相应的代码示例:
```c
#include <stdio.h>
#define ROWS 6
#define COLS 6
void shift_matrix(int a[ROWS][COLS], int b[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) { // 遍历每一行
int temp = a[i][COLS - 1]; // 存储最后一列元素
for (int j = COLS - 2; j >= 0; j--) { // 将其他元素向后移
a[i][j + 1] = a[i][j];
}
b[i][0] = temp; // 将最后元素放到第一列
}
}
// 输出矩阵
void print_matrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int a[ROWS][COLS], b[ROWS][COLS];
// 获取用户输入并初始化矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
scanf("%d", &a[i][j]);
}
}
shift_matrix(a, b);
// 输出移动后的矩阵
printf("Original Matrix:\n");
print_matrix(a);
printf("\nShifted Matrix:\n");
print_matrix(b);
return 0;
}
```
阅读全文