编写一个函数,使给定的一个n*n矩阵转置,即行列互换。

/*Note:YourchoiceisCIDE*/#include"stdio.h"voidinput(int*p,intm,intn){inti,j;printf("请... /* Note:Your choice is C IDE */
#include "stdio.h"
void input(int *p,int m,int n)
{ int i,j;
printf("请输入数组:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",p++);
}
void output1(int *p,int m,int n)
{ int i,j;
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
printf("%5d",*p++);
printf("\n");
}
}
void output2(int *q,int m,int n)
{ int i,j;
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%5d",*(q+i)+j);
printf("\n");
}
}

void zhuanzhi(int *p,int *q,int m,int n)
{ int i,j;
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
*(*(q+j)+i)=*(*(p+i)+j);
}
}
main()
{ int a[100][100],b[100][100],m,n;
printf("请输入行、列数为:");
scanf("%d%d",&m,&n);
input(*a,m,n);
output1(*a,m,n);
zhuanzhi(*a,*b,m,n);
output2(*b,m,n);
}
错在哪了,麻烦看看,谢谢啦
展开
 我来答
xoaxa
2013-12-19 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3501万
展开全部

/*

请输入行、列数为: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) {
int i,j;
printf("请输入数组%d×%d:\n",m,n);
for(i = 0;i < m;i++)
for(j = 0;j < n;j++)
scanf("%d",&p[i][j]);
}

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

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

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

int main() {
int **a,**b,m,n,i;
printf("请输入行、列数为:");
scanf("%d%d",&m,&n);
a = (int **)malloc(m * sizeof(int));
for(i = 0; i < m; ++i)
a[i] = (int *)malloc(n * sizeof(int));
b = (int **)malloc(n * sizeof(int));
for(i = 0; i < n; ++i)
b[i] = (int *)malloc(m * sizeof(int));
input(a,m,n);
output1(a,m,n);
zhuanzhi(a,b,m,n);
output2(b,m,n);
for(i = 0; i < m; ++i)
free(a[i]);
free(a);
for(i = 0; i < n; ++i)
free(b[i]);
free(b);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式