请各位高手指教,有关3×3矩阵转置问题,请看清楚要求,万分感谢!!~
#include "stdafx.h"#include <stdio.h>
int main ()
{
int exchange(int *q1,int *q2);
int a[3][3];
int (*p1)[3]=a;
int b[3][3];
int (*p2)[3]=b;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf_s("%d",&*(*(p1+i)+j));
}
printf("转置后的3×3矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{ printf("%d",*(*(p2+i)+j));
printf(" ");
}
printf("\n");
}
return 0;
}
void exchange(int *q1[3],int *q2[3])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
*(*(q2+j)+i)=*(*(q1+i)+j);
*(*(q2+i)+j)=*(*(q2+j)+i);;
}
return;
}
我不知道这个程序出了什么问题,输出是一堆很长的数,请求大家急救!!~此题要求:
将一个3×3的矩阵转置,用一函数实现这一计算(在函数中只能使用指针变量)。
将数组名作为函数的参数,在执行函数的过程中实现矩阵转置,函数调用结束后,在主程序中输出已转置的矩阵。
本题目要求编程实现矩阵的转置,并且在实现这一操作时只能使用指针,因此解决这一问题时,应注意下面几个问题:
数组名是一个指针变量,但该指针变量是一个常量;
int a[10] 中的a 的类型等同于 int *p 定义的指针变量p;
int a[10][5]中定的a的类型等同于 int (*p)[5];
万分感谢各路英雄好汉,请尽快帮我解决问题,很急很急!!~