C语言指针3 3矩阵转置

#include<stdio.h> main() { int p[3][3]; //或者分配内存,或者直接声明成数组 int t; int i,j; printf("Input 3*3 :\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&(p[i][j])); //要用地址 for(i=0;i<3;i++) for(j=i+1;j<3;j++) //不要重复转置,否则又回到原来

#include main() {int a[3][3],i,j; for(i=0;ifor(j=0;jscanf("%d",&a[i][j]); for(j=0;j{for(i=0;i printf("%d ",a[i][j]); printf("\n"); } getch(); } 后面的那个getch();看你是什么编译系统,若不是wintct.可不加,程序经调试.没问题

指针在使用之前一定要有具体的地址内容才能操作!!!你这里使用了两个较为复杂的指针应用: 1. int **p; 二维指针 2. int *t[3]; 指针数组 不知道你对这两种数据是否清楚其意义,乱用指针会使程序甚至机器出问题的!(好好看书去理解吧)

/**************************** file:func_dec.h des: fuctions declaration*****************************///fun_name:get_argc()//usage:得到矩阵维数//argcs://argcs usage:返回矩阵维数 int get_argc();//fun_name:display()//usage:打印矩阵//argcs:链表头指

第十七行 应写为 :*temp=*(*(p+i)+j); 第十八行应写为 : *(p+i)+j=*(*(p+j)+i); 第十九行应写为 :*(p+j)+i=*temp

int p[3][3];//(.p[3][3] 赋值) int t = 0; for(int i = 1; i < 3; i++) { t = p[i][2-i]; p[i][2-i] = p[2-i][i]; p[2-i][i] = t; }

int iApre[3][3]={1,2,3,4,5,6,7,8,9};//这里换成你需要转换的矩阵 int iAnow[3][3];//这里输出的就是转换完成的矩阵 int i,j; for(i=0;i{ for(j=0;j { iAnow[i][j]=iApre[j][i]; } }

方型矩阵转置比较简单,对上三角或下三角做交换即可.#include "stdio.h" void Transpose(int (*matrix)[3]) { int temp; int i, j; for(i=1;i<3;i++)/*转置*/ { for(j=0;j<i;j++) { temp = *(*(matrix+j)+i); *(*(matrix+j)+i) = *(*(matrix+i)+j); *(*(matrix+i)+j) = temp;

for(int i=0;i<3;i++) for(int j=0;j<i;j++) a[i][j] = a[i][j] + a[j][i] - (a[j][i] = a[i][j]);

#include<stdio.h> void hehe(int *p1) { int i,j,k; for(i=0;i<3;i++) { for(j=i;j<3;j++) { k=*(p1+3*i+j); *(p1+3*i+j)=*(p1+3*j+i); *(p1+3*j+i)=k; } } } void main() { int a[3][3],*p,i,j; printf("请输入一个数组:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("

相关文档

c语言将3x3矩阵转置
用指针将3x3矩阵转置
用指针将3x3矩阵求和
将一个3x3的矩阵转置
c 3x3矩阵 转置
一个3x3的矩阵指针的方
矩阵转置c语言指针
指针将3 3矩阵转置
gpfd.net
596dsw.cn
qimiaodingzhi.net
eonnetwork.net
xmjp.net
电脑版