.笨小孩. 2021-09-08 21:57 采纳率: 25%
浏览 22
已结题

矩阵相关程序,矩阵打印操作无法正常进行。

我写了个有关矩阵的程序。菜单打印和键盘控制函数都没有问题,但矩阵打印函数无法正常执行。请问大家是哪里出了问题。


#include<stdio.h>
#include<stdlib.h>

int ** createMatrix(int size);//矩阵创建
void menuPrint();//菜单打印
void keyControl(int ***matrix, int size);//键盘控制
void matrixPrint(int ***matrix, int size);//矩阵打印

int main(int argc, char const *argv[])
{
    int **matrix;
    int size;//行列式大小

    printf("请输入所计算的矩阵的阶数\n");
    scanf("%d", &size);
    matrix = createMatrix(size);
    menuPrint();
    keyControl(&matrix,size);
    return 0;
}

int ** createMatrix(int size)
{
    int i, j;//代表行和列
    //定义一个二维指针(先存放有几列(列指针存放),再通过列数指针存放一行几个数)
    int **pmatrix;

    //动态申请一块内存(大小为size个int*指针所要的内存)——有多少个列指针,就有多少列
    pmatrix = (int **)malloc(sizeof(int *) * size);//申请完后,**pmatrix可看成*pmatrix[size](指针数组)
    //动态申请每行有几个(通过列指针申请)
    for (i = 1; i <= size; i++)
    {
        //动态申请每行的元素总需的内存
        pmatrix[i] = (int *)malloc(sizeof(int) * size);
    }
    //行列式的输入
    printf("请输入矩阵:\n");
    for (i = 0; i < size; i++)
    {
        for (j = 0; j < size; j++)
            scanf("%d", &pmatrix[i][j]);
    }

    return pmatrix;
}

void menuPrint()
{
    printf("|———————————————————————————————————————————|\n");
    printf("\t\t1.矩阵转置\t\t\n");
    printf("\t\t2.矩阵按行交换\t\t\n");
    printf("\t\t3.矩阵按列交换\t\t\n");
    printf("\t\t4.矩阵按行相加减\t\t\n");
    printf("\t\t5.矩阵按列相加减\t\t\n");
    printf("\t\t6.矩阵打印\t\t\n");
    printf("|———————————————————————————————————————————|\n");

}

void keyControl(int ***matrix, int size)
{
    int flag;
    printf("请输入所进行操作的操作数:");
    scanf("%d", &flag);
    switch (flag)
    {
    case 6:
        matrixPrint(***matrix, size);
        break;
    case 5:
        printf("矩阵按列相加减");
        break;
    }
}

void matrixPrint(int ***matrix, int size)
{
    int i, j;
    for (i = 0; i < size; i++)
    {
        for (j = 0; j < size; j++)
            printf("%d ", (*matrix)[i][j]);
        printf("\n");
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月16日
    • 创建了问题 9月8日

    悬赏问题

    • ¥15 惠普360g9的最新bios
    • ¥15 配置hadoop时start-all.sh老是启动失败
    • ¥30 这个功能用什么软件发合适?
    • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
    • ¥15 用pytorch实现PPO算法
    • ¥15 关于调制信号的星座图?
    • ¥30 前端传参时,后端接收不到参数
    • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
    • ¥15 机器学习预测遇到的目标函数问题
    • ¥15 Fluent,液体进入旋转区域体积分数不连续