楼主,不知道我有没有正确理解你的意思。试着写了下,你看看要的是不是这种效果:
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;}
int a[][] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
int b[][] = new int [4][7];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 7; j++) {
b[i][j] = a[j][i];
}
}
Systemoutprintln("矩阵a:");
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 4; j++) {
if (j < 3) {
Systemoutprint(a[i][j] + " ");
} else {
Systemoutprintln(a[i][j] + " ");
}
}
}
Systemoutprintln("矩阵a转置:");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 7; j++) {
if (j < 6) {
Systemoutprint(b[i][j] + " ");
} else {
Systemoutprintln(b[i][j] + " ");
}
}
}
代码写得烂不要喷我,我想解决思路就是这样吧!
以上就是关于编写函数,利用指针数组实现一个n*n矩阵(或行列式)的转置。全部的内容,包括:编写函数,利用指针数组实现一个n*n矩阵(或行列式)的转置。、如何用java编写一个矩阵的转置、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)