C语言怎样输入多个的多维矩阵,不知到有多少个矩阵

高手们帮我说下,C语言怎样输入多个的多维矩阵,不知到有多少个矩阵
最新回答
雪紫∮冰雨

2024-05-19 04:17:45

方法很多:

我这里直接用动态数组演示。

矩阵维度该

常量
就行了。

#include <
stdio.h
>
#include <malloc.h>
#define row 2 //矩阵行数
#define col 3 //矩阵列数
int main()
{
    int ***a=NULL,**b=NULL,*c=NULL,*p=NULL,n,i,j,k;
    printf("输入要创建的二维矩阵(%dX%d)个数:",row,col);
    scanf("%d",&n);
    a=(int ***)malloc(sizeof(int **)*n);
    if(!a)
        return 1;
    for(i=0;i<n;i++)
    {
        c=(int *)malloc(sizeof(int)*row*col);
        b=(int **)malloc(sizeof(int *)*row);
        if(!c || !b)
            return 1;
        p=c;
        a[i]=b;
        while(p<=c+(row-1)*col)
        {
            *b=p;
            p+=col;
            b++;
        }
    }
    //----------截止到此,n个二维矩阵空间创建完成----------//
    //----下面可以试着给矩阵赋值打印--------------//
    for(i=0;i<n;i++)
    {
        printf("请给第%d个%dX%d矩阵赋值:\n",i+1,row,col);
        p=&a[i][0][0];
        for(j=0;j<row*col;j++)
            scanf("%d",p++);
    }

    printf("输入的矩阵为:\n");
    for(i=0;i<n;i++)
    {
        p=&a[i][0][0];
        k=1;
        for(j=0;j<row*col;j++)
        {
            printf("%d ",*p);
            if(k++==col)
                printf("\n"),k=1;
            p++;
        }
        printf("\n");
    }
    return 0;
}
守护在此方

2024-05-19 09:46:19

问题的描述不太清楚啊,你是想要存储各种形态各异的矩形吗?如果无上限的话可以尝试使用struct造一个链表。或者不用这个方式,改改用数组,比如记录每个矩形的纵行,存在a,b中(多个就把a,b上升成数组),下次再调用for输出矩形。
;單人旁┍

2024-05-19 10:36:58

2 作品目录
追问
能举个例子不。
林中教师

2024-05-19 05:01:33

第6届中国国际动漫节“美猴奖”——最佳动画配音奖