当前位置:首页 » 编程语言 » c语言如何实现3阶矩阵内转置
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言如何实现3阶矩阵内转置

发布时间: 2022-06-07 11:52:59

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
*/

Ⅱ 3*3矩阵转置 C语言 数组

思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。

//参考代码

#include<stdio.h>
intmain()
{
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3];
inti,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(" ");
}
return0;
}
/*
运行结果:
147
258
369
*/

Ⅲ 您好~怎么样用C语言编写一个实现矩阵((3行3列)的转置,即行列互换

#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;
}

Ⅳ 用C语言编程~~:输入三阶矩阵,输出该矩阵的转置矩阵。

转置就是把00和22交换,01和12,10和21交换。
太久没编C了,试着编一下。现在全是汇编思维。。。
#include <stdio.h>
main()
{
int i,j,t;
int a[3][3];
for(i=0;i<=2;i++)
{
for(j=0;j<=2,j++)
printf ("shu ru a[%d][%d]",i,j);
scanf ("%d",&a[i][j]); /*输入数据
}
a[2][2]=t;t=a[0][0];a[0][0]=t; /*交换
a[0][1]=t;t=a[1][2];a[1][2]=t;
a[1][0]=t;t=a[2][1];a[2][1]=t;
for(i=0;i<=2;i++)
{
for(j=0;j<=2,j++)
printf ("%d/t",&a[i][j]); /*输出
printf ("/n"); /*输入一排后提行
}
}

还有个方法就是在输出的时候把I和J换一下就行了。
上面的程序行列式没定义对,有点问题,你自己改改。

Ⅳ C语言大神给力呀! 将一个3×3阶矩阵转置,用一函数实现。在主函数中用scanf函数输入矩阵元素,

#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
int i;
for(i=0; i<t; i++)
{
int n,m;
scanf("%d%d",&n,&m);
int j,k;
int a[105][105],b[105][105];
for(j=0; j<n; j++)
for(k=0; k<m; k++)
{
scanf("%d",&a[j][k]);
b[k][j]=a[j][k];
}
for(j=0;j<m;j++)
{
for(k=0;k<n;k++)
{
if(k==n-1)
printf("%d",b[j][k]);
else
printf("%d ",b[j][k]);
}
if(j!=m-1)
printf("\n");
}
}
}

Ⅵ C语言、用指针方法实现一个3*3矩阵的转置

#include&lt;iostream&gt;

#include&lt;iomanip&gt;

using namespace std;

int main()

{

void move(int*pointer);//函数声明

int a[3][3],i,j;

int*p;

cout&lt;&lt;"请输入矩阵元素:"&lt;&lt;endl;

for(i=0;i&lt;3;i++)//输入数组

{

for(j=0;j&lt;3;j++)

{

cin&gt;&gt;a&lt;i&gt;[j];

}

}

cout&lt;&lt;"输出原矩阵:"&lt;&lt;endl;//输出矩阵

for(i=0;i&lt;3;i++)

{

for(j=0;j&lt;3;j++)

{

cout&lt;&lt;setw(5)&lt;&lt;a&lt;i&gt;[j];

}

cout&lt;&lt;endl;

}

p=&a[0][0];//将数组首元素赋给指针变量p

move(p);//函数调用

cout&lt;&lt;"处理后的矩阵:"&lt;&lt;endl;

for(i=0;i&lt;3;i++)//输出处理后的矩阵

{

for(j=0;j&lt;3;j++)

{

cout&lt;&lt;setw(5)&lt;&lt;a&lt;i&gt;[j];

}

cout&lt;&lt;endl;

}

return 0;

}

//交换函数

void move(int*pointer)

{

int i,j,t;

for(i=0;i&lt;3;i++)

{

for(j=i;j&lt;3;j++)

{

t=*(pointer+3*i+j);//这是关键将矩阵转置的条件

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

}



(6)c语言如何实现3阶矩阵内转置扩展阅读:

用函数

#include&lt;stdio.h&gt;

int main()

{

void move(int*s);

int a[3][3];int i=0;

int*p=&a[0][0];

printf("请输入一个3*3的数组: ");

for(i=0;i&lt;3;i++)

{

scanf("%d%d%d",&a&lt;i&gt;[0],&a&lt;i&gt;[1],&a&lt;i&gt;[2]);

}

move(p);

printf("转置后的结果: ");

for(i=0;i&lt;3;i++)

{

printf("%d%d%d ",a&lt;i&gt;[0],a&lt;i&gt;[1],a&lt;i&gt;[2]);

}

return 0;

}

void move(int*s)

{

int i,j,t;

for(i=0;i&lt;3;i++)

{

for(j=i;j&lt;3;j++)

{

t=*(s+3*i+j);

*(s+3*i+j)=*(s+3*j+i);

*(s+3*j+i)=t;

}

}

}

Ⅶ 将一个3x3的矩阵转置,怎样用c语言写

#include&lt;stdio.h&gt;

int main()

{

int a[3][3];int*i;

for(i=*a;i&lt;*a+9;scanf("%d",i++));//输入矩阵

void trans(int(*p)[3]);//声明转换函数

trans(a);

}

void trans(int(*p)[3])

{

int i,j,t,*k;

for(i=0;i&lt;3;i++)

for(j=0;j&lt;i;j++)

{

t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交换

}

for(i=0;i&lt;3;i++,printf(" "))

for(k=*(p+i);k&lt;*(p+i)+3;printf("%2d",*k++));//输出转置矩阵

}

(7)c语言如何实现3阶矩阵内转置扩展阅读:

C#中for语句的语法:

for(initialization;Boolean expression;update control variable)

statement

其中,statement(语句)是for循环主体,要么是一个语句,要么是用大括号{}封闭的代码块。[3]

例子1:

static void Main(string[]args)

{

for(int i=0;i&lt;10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2:

static void Main(string[]args)

{

int i=0;

for(;i&lt;10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2运算得到例子1相同的结果。

Pascal语言中的for循环

循环次数已知时,可以用for语句实现循环结构。

for语句有两种格式:递增型和递减型。

(1)递增型for语句格式

for&lt;循环变量&gt;:=&lt;初值&gt;to&lt;终值&gt;do&lt;语句&gt;;

(2)递减型for语句格式,

for&lt;循环变量&gt;:=&lt;初值&gt;downto&lt;终值&gt;do&lt;语句&gt;;

其中,“循环变量"为一个有序类型的数据,

在第一种形式中,使用的是保留字to,循环变量则从“初值"开始逐一增加到“终值";

在第二种形式中,使用的是保留字downto,“循环变量"则从“初值"开始逐一递减到“终值",每次执行一次循环体语句。

Ⅷ 各位大大,"用一个函数将一个3X3的整型矩阵转置"是什么意思用C语言怎么做

矩阵转置就是行变为列,列变为行。具体示例如下:

#include<stdio.h>
voidfun(inta[3][3])
{
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
}
//以上为用于转置矩阵的函数,就是题目要求的函数,以下为主函数
voidmain()
{
inti,j,a[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
fun(a);
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<3;j++)
printf("%-4d",a[i][j]);
}
}

运行示例:

Ⅸ !!!跪求C语言实现矩阵运算(加,减,乘、求逆、转置)

1、首先打开vs2015(其他版本也可以),新建一个Windows Form窗体程序或者控制台都可以。

Ⅹ c语言如何通过定义函数来转置矩阵

#include <stdio.h>

int main()

{ struct aaa

{ int x;

int y;

};

struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};

int i,j;

for(i=0; i<3; i++)

{ for(j=0; j<3; j++)

printf("[%d,%d] ",a[i][j].x,a[i][j].y);

printf(" ");

}

printf("after: ");

for(i=0; i<3; i++)

for(j=0; j<i; j++)

{ t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

for(i=0; i<3; i++)

{ for(j=0; j<3; j++)

printf("[%d,%d] ",a[i][j].x,a[i][j].y);

printf(" ");

}

return 0;

}

或:

#include <stdio.h>

struct aaa

{ int x;

int y;

};

void zhuan(struct aaa a[][3])

{ struct aaa t;

int i,j;

for(i=0; i<3; i++)

for(j=0; j<i; j++)

{ t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

void prt(struct aaa a[][3])

{ int i,j;

for(i=0; i<3; i++)

{ for(j=0; j<3; j++)

printf("[%d,%d] ",a[i][j].x,a[i][j].y);

printf(" ");

}


}

int main()

{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};

prt(a);

zhuan(a);

printf("after: ");

prt(a);

return 0;

}