程序设计C 实验五 题目四 二维动态数组转置(0294)

来源:互联网 发布:李玟的地位知乎 编辑:程序博客网 时间:2024/05/22 12:51

输入两个数字分别控制行向量个数和列向量个数。动态生成二维矩阵,对矩阵赋值后将其转置输出。

Description

输入的第一行为了两个整数m、n,接下来有一个由m*n个数据组成的整数矩阵。

Input

按转置后的矩阵格式输出转置矩阵(n*m)。

Output
1
2
3
4
5
3 2
1 2
3 4
5 6
Sample Input
1
2
3
1 3 5
2 4 6

#include <stdio.h>#include <stdlib.h> int main() {    int **ptr_a,m,n,i,j;    //**ptr_a为二级指针     scanf("%d %d",&m,&n);    ptr_a = (int **)malloc(m * sizeof(int *));       //先动态分配一维数组     if(ptr_a == NULL) return 0;    for(i = 0;i < m;i++) {        ptr_a[i] = (int *)malloc(n * sizeof(int));   //为每一个一维数组再动态分配内存         if(ptr_a == NULL) return 0;    }    for(i = 0;i < m;i++) {        for(j = 0;j < n;j++) {            scanf("%d",&ptr_a[i][j]);        }    }    for(i = 0;i < n;i++) {        for(j = 0;j < m;j++) {            if(j == m - 1) printf("%d\n",ptr_a[j][i]);            else                printf("%d ",ptr_a[j][i]);        }    }    for(i = 0;i < m;i++) {        free(ptr_a[i]);    }    free(ptr_a);    return 0;}


阅读全文
0 0
原创粉丝点击