當前位置:首頁 » 編程語言 » c語言一個矩形轉置成另一個矩形
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言一個矩形轉置成另一個矩形

發布時間: 2023-07-24 10:00:45

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;

}

Ⅱ C語言 ,求轉置矩陣

根據數學定義可以知道,對於矩陣P,其第m行n列上的元素,是其轉置矩陣的n行m列元素。

從此可以得出程序如下:

#defineM10
#defineN5
//以10行5列為例,可以任意修改。
voidconvert(inta[M][N],intb[N][M])//求a的轉置矩陣,結果存於b中。
{
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
b[j][i]=a[i][j];//轉置運算。
}

Ⅲ 用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("");
}
}
//我這個能實現任意大小的,還有提示輸入輸出

Ⅳ C語言:要求對矩陣的轉置變換。 對於輸入的矩陣A,要求輸出A的轉置矩陣。

/*矩陣的行和列運行時輸入*/
#include <stdio.h>
#include <malloc.h>
#include <time.h>
#include <stdlib.h>
void rp(int** a,int r,int c)
{
int i,j;
int** ta=(int**)malloc(c*sizeof(int*));
for(i=0;i<c;i++)
{
ta[i]=(int*)malloc(r*sizeof(int));
}
for(i=0;i<c;i++)
{
for(j=0;j<r;j++)
{
ta[i][j]=a[j][i];
printf("%4d",ta[i][j]);
}
printf("\n");
}
for(i=0;i<c;i++)
{
free(ta[i]);
}
free(ta);
}

void main()
{
int r,c,i,j;
printf("輸入矩陣的行和列,用空格分開:");
scanf("%d%d",&r,&c);
int** as=(int**)malloc(r*sizeof(int*));
for(i=0;i<r;i++)
{
as[i]=(int*)malloc(c*sizeof(int));
}
srand((unsigned)time(0));
printf("轉置前:\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
as[i][j]=rand()%100;
printf("%4d",as[i][j]);
}
printf("\n");
}
printf("轉置後:\n");
rp(as,r,c);

for(i=0;i<r;i++)
{
free(as[i]);
}
free(as);
}

輸入矩陣的行和列,用空格分開:5 6
轉置前:
94 90 24 5 20 80
22 60 41 18 47 28
0 96 26 1 65 85
20 5 5 90 87 14
71 43 64 96 65 17
轉置後:
94 22 0 20 71
90 60 96 5 43
24 41 26 5 64
5 18 1 90 96
20 47 65 87 65
80 28 85 14 17
請按任意鍵繼續. . .

Ⅳ 將一個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++));//輸出轉置矩陣

}

(5)c語言一個矩形轉置成另一個矩形擴展閱讀:

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,「循環變數"則從「初值"開始逐一遞減到「終值",每次執行一次循環體語句。