用c语言编程序:定义一个整型的4行4列的矩阵a,并输入矩阵a的值。将矩阵a行列互换,输出互换后的矩阵,要求按4行4列的矩阵形式输出,并且矩阵中每个元素按域宽为4输出。 (提示:可以借助另一个矩阵b,也可以在本矩阵中利用对角线的性质进行交换。)
时间: 2024-12-12 14:06:21 浏览: 11
C语言程序设计-编写程序,实现矩阵(3行3列)的转置(即行列互换) .c
5星 · 资源好评率100%
在C语言中,我们可以定义一个二维数组来代表矩阵,并通过嵌套循环来输入和显示矩阵的元素。这里我们创建一个临时二维数组`b`来存储矩阵`a`的元素,以便于进行行列互换。
```c
#include <stdio.h>
#define ROWS 4
#define COLS 4
// 定义矩阵结构
int matrix[ROWS][COLS];
void inputMatrix() {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("Enter element a[%d][%d]: ", i, j);
scanf("%d", &matrix[i][j]);
}
}
}
void swapColumns(int temp[ROWS][COLS]) {
// 使用临时数组交换列
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS / 2; j++) {
int tempTemp = temp[i][j];
temp[i][j] = temp[i][COLS - 1 - j]; // 交换第j列和第Cols-j列
temp[i][COLS - 1 - j] = tempTemp;
}
}
}
void displayMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%4d ", matrix[i][j]); // 按4位宽度打印
}
printf("\n");
}
}
int main() {
inputMatrix();
// 创建临时数组存储原矩阵
int b[ROWS][COLS];
for (int i = 0; i < ROWS; i++)
for (int j = 0; j < COLS; j++)
b[i][j] = matrix[i][j];
// 行列互换
swapColumns(b);
// 输出互换后的矩阵
printf("Swapped Matrix:\n");
displayMatrix(b);
return 0;
}
```
阅读全文