
楼主,不知道我有没有正确理解你的意思。试着写了下,你看看要的是不是这种效果:
123456789101112131415161718192021222324252627282930#include<stdioh>#define N 100int main(){ int a[N][N]; int ptr_a[N][N]; int n,i,j,temp; scanf("%d",&n);//输入矩阵的大小nn for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) for(j=0;j<n;j++) ptr_a[i][j]=&a[i][j]; for(i=0;i<n;i++)//转置 for(j=0;j<i;j++) { temp=ptr_a[i][j]; ptr_a[i][j]=ptr_a[j][i]; ptr_a[j][i]=temp; } printf("转置后的结果:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } return 0;}
#include "stdioh"
int main(){
int i,j,t,a[3][2],b[2][3];
//读入矩阵A
for(i=0;i<3;i++){
for(j=0;j<2;j++){
scanf("%d",&t);
a[i][j]=t;
}
}
//转置矩阵
for(i=0;i<3;i++){
for(j=0;j<2;j++){
b[j][i]=a[i][j];
}
}
//输出结果
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("a[%d][%d]=%d b[%d][%d]=%d\n",i,j,a[i][j],j,i,b[j][i]);
}
}
return 1;
}
好吧,简单说下:void fun( float a[][])
{ int i,j,float t;
for(i=0;a[i][0];i++)
for(j=i;a[i][j];j++)
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
这个函数的局限只限于方阵。也只能对上三角元素 *** 作,是因为a[][]数组本身空间的限制,如果采用指针的话:
令p=a;其他注意是对内容p之类 *** 作即可。不过如果采用引入矩阵b来 *** 作可以完美解决上述问题:
void fun( float a[][],float b[][])
{ int i,j;
for(i=0;a[i][0];i++)
for(j=0;a[i][j];j++)
{b[j][i]=a[i][j];
}
}
最后如果非要用a[][]输出的话,可以用b[][] 回代即可
#include<stdioh>
void func(int array[4][4])
{
int temp=0;
int i,j;
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
void main()
{
int test[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",test[i][j]);
printf("\n");
}
func(test);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",test[i][j]);
printf("\n");
}
}
扩展资料:
在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。
将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。
关于矩阵相关理论的发展和应用,请参考矩阵理论。在天体物理、量子力学等领域,也会出现无穷维的矩阵,是矩阵的一种推广。
参考资料来源:百度百科-转置
以上就是关于编写函数,利用指针数组实现一个n*n矩阵(或行列式)的转置。全部的内容,包括:编写函数,利用指针数组实现一个n*n矩阵(或行列式)的转置。、编制程序,从键盘输入一个矩阵A(3*2),将其转置成B(2*3)、C语言(指针): 编写一个函数实现n*n矩阵转置。在主函数中用scanf输入矩阵元素;将数组名作为函数实参。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)