编写一个函数,使给定的一个n*n矩阵转置,即行列互换./* Note:Your choice is C IDE */#include "stdio.h"void input(int *p,int m,int n){ int i,j;\x09printf("请输入数组:");\x09for(i=0;i

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 23:49:35

编写一个函数,使给定的一个n*n矩阵转置,即行列互换./* Note:Your choice is C IDE */#include "stdio.h"void input(int *p,int m,int n){ int i,j;\x09printf("请输入数组:");\x09for(i=0;i
编写一个函数,使给定的一个n*n矩阵转置,即行列互换.
/* Note:Your choice is C IDE */
#include "stdio.h"
void input(int *p,int m,int n)
{ int i,j;
\x09printf("请输入数组:");
\x09for(i=0;i

编写一个函数,使给定的一个n*n矩阵转置,即行列互换./* Note:Your choice is C IDE */#include "stdio.h"void input(int *p,int m,int n){ int i,j;\x09printf("请输入数组:");\x09for(i=0;i

/*

请输入行、列数为:3 4

请输入数组3×4:

1 2 3 4

5 6 7 8

9 10 11 12

    1    2    3    4

    5    6    7    8

    9   10   11   12


    1    5    9

    2    6   10

    3    7   11

    4    8   12


Press any key to continue

*/

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

void input(int **p,int m,int n) {
\x09int i,j;
\x09printf("请输入数组%d×%d:\n",m,n);
\x09for(i = 0;i < m;i++)
\x09\x09for(j = 0;j < n;j++)
\x09\x09\x09scanf("%d",&p[i][j]);
}

void output1(int **p,int m,int n) {
\x09int i,j;
\x09for(i = 0;i < m;i++) {
\x09\x09for(j = 0;j < n;j++)
\x09\x09\x09printf("%5d",p[i][j]);
\x09\x09printf("\n");
\x09}
\x09printf("\n");
}

void output2(int **q,int m,int n) {
\x09int i,j;
\x09for(i = 0;i < n;i++) {
\x09\x09for(j = 0;j < m;j++)
\x09\x09\x09printf("%5d",*(*(q + i) + j));
\x09\x09printf("\n");
\x09}
\x09printf("\n");
}

void zhuanzhi(int **p,int **q,int m,int n) {
\x09int i,j;
\x09for(i = 0;i < m;i++)
\x09\x09for(j = 0;j < n;j++)
\x09\x09\x09*(*(q + j) + i) = *(*(p + i) + j);
}

int main() {
\x09int **a,**b,m,n,i;
\x09printf("请输入行、列数为:");
\x09scanf("%d%d",&m,&n);
\x09a = (int **)malloc(m * sizeof(int));
\x09for(i = 0; i < m; ++i)
\x09\x09a[i] = (int *)malloc(n * sizeof(int));
\x09b = (int **)malloc(n * sizeof(int));
\x09for(i = 0; i < n; ++i)
\x09\x09b[i] = (int *)malloc(m * sizeof(int));
\x09input(a,m,n);
\x09output1(a,m,n);
\x09zhuanzhi(a,b,m,n);
\x09output2(b,m,n);
\x09for(i = 0; i < m; ++i)
\x09\x09free(a[i]);
\x09free(a);
\x09for(i = 0; i < n; ++i)
\x09\x09free(b[i]);
\x09free(b);
\x09return 0;
}