用c语言定义五行五列数组,输入元素,输出该数组后,再对该数组转置后输出
时间: 2024-12-02 13:18:04 浏览: 8
在C语言中,你可以定义一个二维数组来代表五行五列,首先定义数组并声明其大小,然后接收用户输入填充数组元素,接着创建一个新的数组用于存储转置后的结果。以下是步骤:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 5
// 定义矩阵结构
typedef struct {
int elements[ROWS][COLS];
} Matrix;
// 函数声明
void inputElements(Matrix *matrix);
void transposeMatrix(Matrix *matrix);
void printMatrix(const Matrix *matrix);
int main() {
Matrix matrix;
// 输入元素
printf("请输入五行五列的整数:\n");
inputElements(&matrix);
// 输出原矩阵
printf("\n原始矩阵:\n");
printMatrix(&matrix);
// 转置矩阵
transposeMatrix(&matrix);
// 输出转置后的矩阵
printf("\n转置后的矩阵:\n");
printMatrix(&matrix);
return 0;
}
// 输入函数
void inputElements(Matrix *matrix) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
scanf("%d", &matrix->elements[i][j]);
}
}
}
// 转置函数
void transposeMatrix(Matrix *matrix) {
int transposed[COLS][ROWS] = {0};
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
transposed[j][i] = matrix->elements[i][j];
}
}
// 将转置后的数据复制回原始矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
matrix->elements[i][j] = transposed[j][i];
}
}
}
// 打印矩阵函数
void printMatrix(const Matrix *matrix) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix->elements[i][j]);
}
printf("\n");
}
}
```
阅读全文