4 4矩陣置換的問題,c語言4 4矩陣轉置

2025-04-05 02:05:19 字數 3821 閱讀 2351

1樓:懶先生

按照一維陣列考慮,只需要陣列裡放個衝局數昌鍵組就行了。

初始陣列data[9]=

置換數b[9]=

i遞散迅讓增。t[i]=data[b[i]]

2樓:網友

#include

main()

int s1[4][4],i,(*p)[4],k,t;

p=s1;for(i=0;i《備鬧16;i++)s1+i)=i+1;

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

for(k=i;k<4;k++)

t=*(p+i)+k);

(p+i)+k)=*p+k)+i);

(p+k)+i)=t;}

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

if(i%4==0)printf("");

printf("%3d",*s1+i));

你要啥效果仿餘罩是這樣麼?

你寫毀輪的是啥規律?

3樓:網友

n*n的二維矩陣延對角線置換都可以採取這個表示式:

當然這裡的n代表乙個確切的數,如你問的這道題搏純n代表遲銀納4。)int i,j,temp,a[n][n];

for(i=0;ifor(j=0;jtemp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}

如果是置換的話,你寫的程式不正碼沒確。因為它只是改變了輸出的順序,沒有達到將陣列本身各相應位置進行置換的目的。

圖形學中為什麼用4*4的矩陣進行變換

4樓:北風胡曉

因為對於乙個平移變化,我們會對於x,y,z增加乙個常數。在1*3的矩陣內我們只能表示表示出乙個三維空間的點的座標。用這個矩陣乘乙個3*3的矩陣只能得到變化下的點關於x,y,z三個值所表達的座標。

因此我們需要用乙個1*4的矩。

編寫乙個4×4的矩陣,資料由主函式輸入,並將行與列置換後輸出

5樓:匿名使用者

#include

int main(void)

int a[4][4], b[4][4], i, j, t;

printf("enter the array:"); //輸入該陣列各元素;

for(i = 0; i < 4; i++)for(j = 0; j < 4; j++)scanf("%d", &a[i][j]);

for(i = 0; i < 4; i++)//行列交換,並輸出個元素;

for(j = 0; j < 4; j++)printf("%5d", a[i][j]);

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

printf("");

for(i = 0; i < 4; i++)//輸出;

for(j = 0; j < 4; j++)printf("%5d", b[i][j]);

printf("");

return 0;

c語言4*4矩陣轉置

6樓:網友

其實矩陣的轉置就是按行輸入,然後按列輸出。

程式挺簡單的。

#include

#include

int main()

for(j=0; j<4; j++)///按列輸出printf("");}

矩陣列置換

7樓:

你給出的這個置換寫法好像是群裡的一種表示法,如果按這樣的理解,你後面的解釋是對的。

希望對你有所幫助!

matlab如何用4*4的變換矩陣

8樓:

你這是圖形學的問題嗎?

用原矩陣左乘變換矩陣,這樣就可以了呀。

另外如果進行多個變換,那要按照變換的順序倒過來進行乘法運算。

這是你要的答案嗎。

置換矩陣的判定定理

9樓:

定理 1 當 m≦n時,乙個 m×n 的(0,1) 矩陣p為置換矩陣的充要條件是p的每一行恰有乙個 1,每一列恰有乙個 1。

置換矩陣在數學中的矩陣論裡,置換矩陣是一種係數只由0和1組成的方塊矩陣。置換矩陣的每一行和每一列都恰好有乙個1,其餘的係數都是0。**性代數中,每個n階的置換矩陣都代表了乙個對n個元素(n維空間的基)的置換。

當乙個矩陣乘上乙個置換矩陣時,所得到的是原來矩陣的橫行(置換矩陣在左)或縱列(置換矩陣在右)經過置換後得到的矩陣。

有關c程式設計的一道題,乙個關於4*4矩陣的問題

10樓:

你查詢最小值的時候沒有用for迴圈,所以row和colum還是上面的for迴圈的最後的值給你改下:

#include ""

void main()

int i,j,row=0,colum=0,min;

int a[4][4],sum=0;

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

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

scanf("%d",&a[i][j]);

min=a[0][0];

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

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

if(a[i][j]min=a[i][j];

row=i;

colum=j;

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

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

sum=sum+a[i][i];

printf("sum=%d",sum);

11樓:網友

我算了一遍,row=,colum=,與你的相符,但sum=17+6+11+16=50.而min我也不確定應該是17..我沒執行,不知是**出了毛病。

12樓:山嶺舉人

原因就是你的for迴圈沒有把尋找最小值的過程包括進去,要加乙個大括號{}。

另外roc_chou 給出的解決方法也可以,只是要兩次迴圈,開銷比較大,我的方法只要一次迴圈就能找出最小值。

#include ""

void main()

int i,j,row=0,colum=0,min;

int a[4][4],sum=0;

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

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

scanf("%d",&a[i][j]);

min=a[row][colum];%此處有改動%if(a[i][j]row=i;

colum=j;

min=a[row][colum];%此處有改動%for(i=0;i<=3;i++)

sum=sum+a[i][i];

printf("sum=%d",sum);

c++ 輸入乙個4*4的矩陣。轉置後輸出結果 **置就是行數列與列數列元素對換)

13樓:匿名使用者

我用c語言寫的 c++應該也可以用的 不知道是不是要達到你要的效果 #include

void main()

for(i=0;iprintf("");

14樓:匿名使用者

// note:your choice is c++ ide#include

using namespace std;

int jzzz(int **a,int m,int n)cout<<"您所輸出的矩陣為:"for(i=0;icout<} jzzz(&a[0],m,n); return 0;

用c語言程式設計 定義4 4二維矩陣陣列,要求行列轉換,並且分別求出主對腳線和次對角線上元素值的和

include int main printf n d sum1 sum2 printf d n d return 0 望採納,已執行容 從鍵盤輸入一個4 4矩陣,並求這個4 4矩陣主對角線元素之和,並輸出.球c語言程式設計 include int main void int i,j,sum1,su...

求矩陣的逆矩陣 c語言編的程式,求矩陣的逆矩陣 c語言編的程式

思路,就按照線性代數書上求逆矩陣的步驟,目前只會指定階的。自己做吧,分太少,編個這麼複雜的程式至少要半個小時 include include include int brinv double a,int n if d 1.0 1.0 if is k k for j 0 j n 1 j if js k...

C語言的問題C語言問題C語言問題

若有說明語句double p,a 則能通過scanf語句正確給輸入項讀入資料的程式段是 解 p a 將a的地址賦值給p,scanf lf p 從鍵盤獲取一個數值賦值給地址p指向的變數 所以選d 有函式fun的定義形式如下。int fun float f 則以下對函式fun的呼叫語句中,不正確的是 a...