本文目錄一覽:
- 1、C語言 矩陣變換
- 2、將一個3×3的矩陣轉置,怎樣用c語言寫?
- 3、c語言中二維數組如何實現矩陣轉換
- 4、C語言如何實現下面數組的轉換 1 2 3 4 1 11 14 16 5 6 7 8轉換為 5 2 12 15 9 10 11 12 8 6 3 1 13 14
C語言 矩陣變換
二維數組的第一維(就是後面一個[])作為行,第二維(就是前面一個[])作為列,這是一種慣用理解方式。你的理解恰好把行和列反了一下。
這種理解方式也不是沒有原因的,一維數組我們叫一行,可以用元素指針自增自減的方式遍歷整個行,但我們不能用元素指針自增自減來遍歷二維數組的整個列。
將一個3×3的矩陣轉置,怎樣用c語言寫?
#includelt;stdio.hgt;
int main()
{
int a[3][3];int*i;
for(i=*a;ilt;*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;ilt;3;i++)
for(j=0;jlt;i;j++)
{
t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交換
}
for(i=0;ilt;3;i++,printf(“\n”))
for(k=*(p+i);klt;*(p+i)+3;printf(“%2d”,*k++));//輸出轉置矩陣
}
擴展資料:
C#中for語句的語法:
for(initialization;Boolean expression;update control variable)
statement
其中,statement(語句)是for循環主體,要麼是一個語句,要麼是用大括弧{}封閉的代碼塊。[3]
例子1:
static void Main(string[]args)
{
for(int i=0;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2:
static void Main(string[]args)
{
int i=0;
for(;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2運算得到例子1相同的結果。
Pascal語言中的for循環
循環次數已知時,可以用for語句實現循環結構。
for語句有兩種格式:遞增型和遞減型。
(1)遞增型for語句格式
forlt;循環變數gt;:=lt;初值gt;tolt;終值gt;dolt;語句gt;;
(2)遞減型for語句格式,
forlt;循環變數gt;:=lt;初值gt;downtolt;終值gt;dolt;語句gt;;
其中,「循環變數”為一個有序類型的數據,
在第一種形式中,使用的是保留字to,循環變數則從「初值”開始逐一增加到「終值”;
在第二種形式中,使用的是保留字downto,「循環變數”則從「初值”開始逐一遞減到「終值”,每次執行一次循環體語句。
c語言中二維數組如何實現矩陣轉換
如果數組是一個方陣,可以這樣:
for(int i=0;in;i++)
for(int j=i+1;jn;j++)
{
int temp=a[i,j];
a[i,j]=a[j,i];
a[j,i]=temp;
}
如果是一個M*N的矩陣的話,就需要重新組織數組了,但是原理差不多
C語言如何實現下面數組的轉換 1 2 3 4 1 11 14 16 5 6 7 8轉換為 5 2 12 15 9 10 11 12 8 6 3 1 13 14
#include stdio.h
//列印方陣
int PrintMatrix(int *matrix,int n);
//轉換方陣
int ConvertMatrix(int *des,int *src,int n);
int main()
{
int matrixA[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
int matrixB[4][4];
printf(“Original:\n”);
PrintMatrix((int *)matrixA,4);
printf(“After convertion:\n”);
ConvertMatrix((int *)matrixB,(int *)matrixA,4);
PrintMatrix((int *)matrixB,4);
return 0;
}
int PrintMatrix(int *matrix,int n)
{
int i,j;
if(!matrix || n1)
return 0;
for(i=0;in;++i)
{
for(j=0;jn;++j)
{
printf(“%5d”,*matrix++);
}
puts(“”);
}
return 1;
}
int ConvertMatrix(int *des,int *src,int n)
{
int i,j;
if(!des || !src || n1)
return 0;
for(i=j=0;in;j=0)
{
while(in)
*(des+n*(i++)+j++)=*src++;
i=i-j+1;
}
for(i=0,j=1;jn;i=0)
{
while(jn)
*(des+n*(i++)+j++)=*src++;
j=j-i+1;
}
return 1;
}
原創文章,作者:XSNP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131141.html