1.用C语言实现矩阵转置
//Transpose
#include <stdio.h>
#define MAX 20
int m,n;
void transpose(double a[][MAX],double b[][MAX])
{
int i,j;
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
b[i][j]=a[j][i];
}
void main()
{
int i,j;
double a[MAX][MAX],b[MAX][MAX];
puts("Please input the dimensions of the matrixe:");
puts("(in term of “2 3”).");
scanf("%d %d",&m,&n);
puts("Enter the matrix:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);
transpose(a,b);
puts("The Transpose as follow:");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(b[i][j]-int(b[i][j])!=0)
printf("%lf ",b[i][j]);
else
printf("%d ",int(b[i][j]));
}
puts("");
}
}
//我这个能实现任意大小的,还有提示输入输出
2.C语言 ,求转置矩阵
已通过测试,望采纳。
不懂追问哈
#include <stdio.h>
#include <conio.h>
void fun(int array[3][3])
{
int array1[3][3];
int i,j,t;
for (i=0;i<3;i++)
{
for (j=0;j<i;j++)
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
}
void main()
{
int i, j;
int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
fun(array);
printf("converted array:\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
}
3.c语言 矩阵转置的编写
#include "stdio.h"void main(){ void zhuan(int array[2][3],int b[3][2]); int array[2][3],b[3][2]; int i,j; printf("input:\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) { scanf("%d",&array[i][j]); } printf("\n"); zhuan(array,b); printf("\n"); for(i=0;i<3;i++) { for(j=0;j<2;j++) printf("%d",b[i][j]); printf("\n"); }}void zhuan(int array[2][3],int b[3][2]) //转置函数zhidao逻辑错误,专没那么麻烦,直接转就是了!属{ int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) { b[j][i]=array[i][j]; }}。
4.C语言编程:求3*3矩阵的转置矩阵
思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。
//参考代码
#include<stdio.h>
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d ",b[i][j]);
printf("\n");
}
return 0;
}
/*
运行结果:
1 4 7
2 5 8
3 6 9
*/
5.用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用
我的代码逻辑是:矩阵行指针初值指向每行首地址,迭代依次取所有行指针指向值组成新行,所有行指针自增。
最终组合新的矩阵。#include #include <stdio.h> #define l 50 /*允许计算的最大行数,自行修改,默认50*/ #define r 50 /*允许计算的最大列数,自行修改,默认50*/ void main() { int i,j,temp; printf("请输入矩阵的行数\n"); int line; scanf("%d",&line); printf("请输入矩阵的列数\n"); int row; scanf("%d",&row); int a[l][r]; printf("请输入矩阵,回车确定输入\n"); { for(j=1;j<=line;j++) { for(i=1;i<=row;i++) { printf("请输入矩阵第%d行第%d列元素\n",j,i); scanf("%d",&a[j-1][i-1]); } } } { temp=line; line=row; row=temp; } { for(j=1;j<=line;j++) { for(i=1;i<=row;i++) { printf("%d",a[i-1][j-1]);printf(","); } printf("\n"); } } } #include <stdio.h> int fun(int array[3][3]) { int i,j,temp; for(i=0;i<3;i++) { for(j=i;j<3;j++) { temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } } return 0; } int main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0;i<3;i++) { for (j=0;j<3;j++) printf("%7d",array[i][j]); printf("\n"); } fun(array); printf("Converted array:\n"); for (i=0;i<3;i++) { for (j=0;j<3;j++) printf("%7d",array[j][i]); printf("\n"); } return 0; } 行列互换就可以了. 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;ifor(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<stdio.h> main() { int a[4][4],b[4][4]; int i,j,m,n,k; printf("请为数组复赋值:\n"); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); /*输出a*/ for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%3d ",a[i][j]); printf("\n"); } /*把a转置以后制保zhidao存到b*/ for(i=0;i<4;i++) for(j=0;j<4;j++) b[j][i] =a[i][j]; printf("\n\n"); /*输出b*/ for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%3d ",b[i][j]); printf("\n"); } } 转载请注明出处育才学习网 » c语言中转置矩阵怎么写6.用c语言编写矩阵的转置 要求:用户输入矩阵中的数字,然后先后打印
7.您好~怎么样用C语言编写一个实现矩阵((3行3列)的转置,即行列
8.将一个3x3的矩阵转置,怎样用c语言写
9.c语言编程m行n列的矩阵转置