老哥们想问一下这个问题
c语言吧
全部回复
仅看楼主
level 3
2024年05月17日 07点05分 1
level 7
作业自己写[呵呵]
2024年05月17日 08点05分 2
level 6
数组不就是天然的指针吗
2024年05月17日 09点05分 3
level 9
#include <stdio.h>
// 函数声明,用于打印矩阵
void printMatrix(int (*matrix)[4], int rows, int cols);
// 函数声明,用于转置矩阵
void transposeMatrix(int (*matrix)[4], int rows, int cols);
int main() {
int matrix[3][4]; // 定义一个3x4的矩阵
int rows = 3, cols = 4;
printf("请输入3x4矩阵的元素:\n");
// 使用双重循环输入矩阵元素
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &matrix[i][j]); // 读取用户输入的每个元素
}
}
printf("\n原矩阵为:\n");
printMatrix(matrix, rows, cols); // 打印原始矩阵
transposeMatrix(matrix, rows, cols); // 调用函数转置矩阵
printf("\n转置后的矩阵为:\n");
printMatrix(matrix, cols, rows); // 打印转置后的矩阵,注意行列互换
return 0;
}
// 打印矩阵的函数
void printMatrix(int (*matrix)[4], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n"); // 换行
}
}
// 矩阵转置的函数
void transposeMatrix(int (*matrix)[4], int rows, int cols) {
int temp; // 临时变量,用于交换元素
// 双重循环实现转置,通过元素交换
for (int i = 0; i < rows; i++) {
for (int j = i + 1; j < cols; j++) { // 注意这里j从i+1开始,避免重复交换
// 交换matrix[i][j]和matrix[j][i]
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
2024年05月17日 15点05分 5
1