矩阵转置,利用fun和display函数

、(矩阵的转置)编写两个函数fun和display, 功能分别是完成矩阵的转置和输出矩阵;在主函数中完成从键盘上输入矩阵行数和列数,用随机函数产生矩阵的元素(取值范围为[0- 100)的整数),存放于二维数组a中并调用dispaly输出a,接着调用fum函数阵b。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案:

    首先,我们需要定义一个矩阵,并初始化为随机整数。然后我们需要定义一个“transpose_matrix”函数,该函数将转置输入的矩阵。最后我们定义一个"display_matrix"函数将矩阵打印输出到控制台。

    以下是完整解决方案的代码示例:

    import random
    
    # 定义 transpose_matrix 函数
    def transpose_matrix(matrix):
        # 获取矩阵的行数和列数
        rows = len(matrix)
        cols = len(matrix[0])
        # 初始化转置矩阵
        transposed_matrix = [[0 for _ in range(rows)] for _ in range(cols)]
        # 对矩阵进行转置操作
        for row in range(rows):
            for col in range(cols):
                transposed_matrix[col][row] = matrix[row][col]
        # 返回转置后的矩阵
        return transposed_matrix
    
    # 定义 display_matrix 函数
    def display_matrix(matrix):
        # 遍历矩阵并打印输出
        for row in range(len(matrix)):
            for col in range(len(matrix[0])):
                print(matrix[row][col], end="\t")
            print()
    
    # 从键盘获取矩阵的行数和列数
    rows = int(input("请输入矩阵的行数:"))
    cols = int(input("请输入矩阵的列数:"))
    
    # 使用随机函数生成矩阵
    a = [[random.randint(0, 99) for _ in range(cols)] for _ in range(rows)]
    
    # 显示未转置的矩阵
    print("未转置的矩阵:")
    display_matrix(a)
    
    # 获取转置后的矩阵并显示
    transposed_a = transpose_matrix(a)
    print("转置后的矩阵:")
    display_matrix(transposed_a)
    

    在主函数中,我们首先使用input函数获取矩阵的上限和下限,然后使用random函数在该范围内生成随机数并将其存储在二维数组"a"中。然后我们通过调用"display_matrix"函数将矩阵打印输出到控制台。接着我们调用"transpose_matrix"函数获取矩阵的转置结果。最后,我们将转置后的结果通过调用"display_matrix"函数输出到控制台。

    示例输出:

    请输入矩阵的行数:3
    请输入矩阵的列数:4
    未转置的矩阵:
    67  4   22  60  
    14  33  63  34  
    46  23  49  45  
    转置后的矩阵:
    67  14  46  
    4   33  23  
    22  63  49  
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void display(int a[][100], int row, int col) {
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
}

void fun(int a[][100], int row, int col, int b[][100]) {
    for (int i = 0; i < col; i++) {
        for (int j = 0; j < row; j++) {
            b[i][j] = a[j][i];
        }
    }
}

int main() {
    int row, col;
    int a[100][100], b[100][100];
    srand(time(NULL));
    printf("请输入矩阵行数和列数:");
    scanf("%d %d", &row, &col);
    printf("随机生成的矩阵为:\n");
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            a[i][j] = rand() % 100;
        }
    }
    display(a, row, col);
    printf("\n矩阵转置后为:\n");
    fun(a, row, col, b);
    display(b, col, row);
    return 0;
}