當前位置:首頁 » 編程語言 » 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;

}