2401_88265599 2024-11-27 10:20 采纳率: 75%
浏览 18

输入矩阵,将其按副对角线交换后输出

img

img


各位佬们可以帮忙看一下这个代码吗😭一直得不了满分,先谢谢各位了

  • 写回答

1条回答

  • 赵4老师 2024-11-27 11:26
    关注
    
    #include <stdio.h>
    
    #define MAX 100  // 假设矩阵的最大尺寸为100x100
    
    void printMatrix(int matrix[MAX][MAX], 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 swapBySecondaryDiagonal(int matrix[MAX][MAX], int rows, int cols) {
        for (int i = 0; i < rows; i++) {
            for (int j = i + 1; j < cols; j++) {
                // 交换matrix[i][j]和matrix[j][i]
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
    
        // 如果矩阵尺寸是奇数且中心元素在副对角线上,则无需额外处理
        // 否则,对于偶数尺寸的矩阵,中心元素(如果存在)保持不变
    }
    
    int main() {
        int rows, cols;
        int matrix[MAX][MAX];
    
        printf("请输入矩阵的行数和列数:\n");
        scanf("%d %d", &rows, &cols);
    
        printf("请输入矩阵的元素:\n");
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                scanf("%d", &matrix[i][j]);
            }
        }
    
        printf("原始矩阵:\n");
        printMatrix(matrix, rows, cols);
    
        swapBySecondaryDiagonal(matrix, rows, cols);
    
        printf("按副对角线交换后的矩阵:\n");
        printMatrix(matrix, rows, cols);
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月27日