矩阵的转置 C语言

来源:互联网 发布:javascript动态效果图 编辑:程序博客网 时间:2024/06/10 22:35

非对称矩阵的转置,采用了将一个矩阵的转置矩阵放在另一个数组中的做法


#include <stdio.h>#include <stdlib.h>//非对称矩阵的转置//采用了将一个矩阵的转置矩阵放在另一个矩阵中的做法void print(int m,int n,int c[m][n]);void fun(int M,int N,int a[M][N],int b[N][M]);int main(){    int M;    int N;    int i;    int j;    int count=1;    printf("请输入矩阵的行长");    scanf("%d",&M);    getchar();    printf("请输入矩阵的列高");    scanf("%d",&N);    getchar();    int a[M][N];    int b[N][M];    printf("请输入矩阵\n");    for(i=0;i<M;i++)        for(j=0;j<N;j++)        {            printf("请输入第%d个数值",count++);            scanf("%d",&a[i][j]);            getchar();        }    print(M,N,a);    fun(M,N,a,b);    printf("矩阵:\n");    for(i=0;i<N;i++)    {        for(j=0;j<M;j++)        {            printf(" ");            printf("%d",b[i][j]);        }        printf("\n\n");    }    printf("\n\n");    print(N,M,b);    return 0;}void fun(int M,int N,int a[M][N],int b[N][M])//矩阵的转置函数,矩阵定义为变长矩阵(VLA){    int i;    int j;    for(i=0;i<N;i++)        for(j=0;j<M;j++)            b[i][j]=a[j][i];    return b;}void print(int m,int n,int c[m][n])//输出矩阵,矩阵定义为变长矩阵(VLA){    int i=0;    int j=0;    printf("矩阵:\n");    for(i=0;i<m;i++)    {        for(j=0;j<n;j++)        {            printf("%d ",c[i][j]);        }        printf("\n\n");    }    printf("\n\n");}

转载请注明出处!

1 0