knrt.net
当前位置:首页 >> 三行三列矩阵转置C语言 >>

三行三列矩阵转置C语言

第一个 内循环条件是j<3也就是对每个元素都会做一次交换.举个例子,对于a[0][2] 会和a[2][0]交换, 这个是正确的,转置的目的正是如此.但运行到i=2 j=0 a[2][0]又和a[0][2]交换了一次, 导致实际上矩阵没变.而第二个就是正确做法, 将左下部分 和右上部分交换. 双重循环遍历的是左下部分元素. 而没有涉及右上.

其实也就是数组的行列互换而已 main() { int i,j; //循环变量 int a[m][n];b[n][m] 数组,b是a的转置 for(i=1;i<=m;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]) //输入数组a,每输一个就会车确认 for(i=1;i<=m;i++) for(j=1;j<=n;j++) b[j][i]=a[i]j]; //转置 for(i=1;i<=m;i++) {for(j=1;j<=n;j++) printf("%d\t",b[j][i]); //输出数组b printf("\n"); //输出一行就换行哈! } }//如此简单

void main() { int s[][3]={{1,2,3},{4,5,6},{7,8,9}}; int t[3][3]; for(int i=0;i { for(int j=0;j { t[i][j]=s[j][i]; printf("%d\t",t[i][j]); } } printf("\n"); }

#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 3 //定义测试矩阵的大小// 矩阵转置 void matrix_transpose(int a[N][N], int n) { int i,j; int e; for(i=0; i<n; i++) { for(j=0; j<i; j++) { e = a[i][j]; a[i][j] = a[j][i]; a[j][i] = e; } } }//打印矩阵数据 void

scanf("%d",a[i][j]); scanf("%d",(*(a+i)+j)); 这两个只需要一个,第二个是正确的,第一个错误,第一个正确形式为scanf("%d",&a[i][j]); 两个去掉一个.

错了,这样下三角被上三角覆盖了 改为下面就可以了 void fun(int array[3][3]) {int i,j,temp; for (i=0;i for (j=0;j{ trmp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } } 其实很好理解,打个比方 int a=5,b=6; a=b; b=a; 其实 ab的值都被6覆盖了

#include void main() { int a[3][3],b[3][3]; int p=0; for(int i=0;i{ for(int j=0;j{ cin>>a[i][j]; b[j][i]=a[i][j]; } } coutfor(int m=0;m{ for(int n=0;n{ coutp++; if(p%3==0) cout } } coutcoutfor(int c=0;c{ for(int d=0;d{ coutp++; if(p%3==0) cout } } }

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]);

行列互换就可以了.main( ) { int i=0,,j=0; int a[3][3]={1,2,3,4,5,6,7,8,9}; int b[3][3]; printf("矩阵转置前\n"); for(i=0;i for(j=0;)j { printf("%2d",a[i][j]); printf("\n); } printf("矩阵转置前\n"); for(i=0;i { for(j=0;)j { b[j][i]= a[i][j]; printf("%2d",b[i][j]); printf("\n); } }

#include #define MAX 100 void main(){ int n,i,j,temp; int arry[MAX][MAX]; printf("please input n(n

qimiaodingzhi.net | 9647.net | fpbl.net | jjdp.net | msww.net | 网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com