编写一个函数,使给定的一个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);
}
错在哪了,麻烦看看,谢谢啦 展开
#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);
}
错在哪了,麻烦看看,谢谢啦 展开
展开全部
/*
请输入行、列数为: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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询