C語言程式設計題 將M M的矩陣按順時針旋轉90度

2025-07-26 08:45:49 字數 3181 閱讀 7450

1樓:網友

順時針旋轉90度不就是矩陣的轉置嗎?行和列交換就可以了。

#include

#define m 3

void main()

printf("轉置後的矩陣:");

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

執行結果:輸入矩陣a:

轉置前的矩陣:

轉置後的矩陣:

press any key to continue

c#中將乙個矩陣二維陣列順時針旋轉90度,**怎麼寫啊?

2樓:無名可用_狂汗

行變列,列變行。

然後行的順序反過來。

你在紙上畫一下示意圖就會發現規律。

c語言實現矩陣逆時針旋轉90度,**除錯!!!!

3樓:網友

區域性變數陣列a太大了,方法1:要麼把m改小,#include

#include

#define m 100

void rotation(int a[m][m],int m,int n)

int tem[m][m];

int i,j,k = 0;

for(j=n-1;j>=0;j--)

for(i=0;item[k][i] = a[i][j];

k++;for(i=0;ifor(j=0;ja[i][j] = tem[i][j];

int main()

int m,n;

int i,j;

int a[m][m];

scanf("%d %d",&m,&n);

rotation(a,m,n);

for(i=0;ifor(j=0;jprintf("%d ",a[i][j]);

printf("");

return 0;

2. 方法2:

要麼把a和tem改為全域性變數。

#define m 1000

int tem[m][m];

void rotation(int a[m][m],int m,int n)

int i,j,k = 0;

for(j=n-1;j>=0;j--)

for(i=0;item[k][i] = a[i][j];

k++;for(i=0;ifor(j=0;ja[i][j] = tem[i][j];

int a[m][m];

int main()

int m,n;

int i,j;

scanf("%d %d",&m,&n);

rotation(a,m,n);

for(i=0;ifor(j=0;jprintf("%d ",a[i][j]);

printf("");

return 0;

輸入n*n的字元矩陣,把它旋轉90度後輸出??用c語言寫,拜託了,急啊!!

4樓:用愷明勳

你這個其實是打了5行,沒有賦值的,其中1,3行沒有內容,所以是空格。要想沒有空格,if(i%2==1)只要偶數行,就沒有空格。

c語言程式設計 將乙個隨機輸入的4*4二維陣列逆時針旋轉90度後以4行4列輸出

5樓:

直觀的演算法是動態申請乙個同樣大小的二維陣列,將旋轉結果存入,然後再拷貝到原陣列並釋放臨時陣列。之所以要動態申請,是考慮到陣列較大時別讓這個臨時用一下的中間陣列永久佔用記憶體空間。**如下:

執行樣例如下:

c++將矩陣順時針旋轉90度

6樓:網友

你到底要逆時針還是順時針。

順時針的,轉置一下,水平翻轉一下就好了。

逆時針的,轉置一下,垂直翻轉一下就好了。

#include

#include

#define n 4

void show(int a[n][n])printf("");

printf("--");

int main()

show(a);

for (i = 0; i < n; i++)show(a);

這是順時針水平翻轉的,注意不能與下面垂直翻轉的同時執行,不然就水平翻一下,垂直又翻一下了。

for (i = 0; i < n; i++)show(a);*/

for (i = 0; i < n; i++)show(a);

return 0;}

7樓:網友

樓主你好!

這個是矩陣轉置問題,根據轉置的定義如下:

矩陣a的轉置為這樣乙個n×m階矩陣b,滿足b=a(j,i),即 b (i,j)=a (j,i)(b的第i行第j列元素是a的第j行第i列元素)

所以根據定義更改部分如下:(將原來的i改為j,原來的j改為i,num[i][n-1]改為num[n-1][j]即可,具體參照如下**)

for(int i=0;i上面的這段改為下面的這段就可以了!

c語言上機改錯題,改的錯誤我已經明白了,但不懂16行是什麼意思,不是要驗證a順時針旋轉90°是否等

8樓:網友

equal(a,b,4) 是判斷a,b兩個4階矩陣是否相等rotate(a,4)是把4階矩陣a 旋轉,其中11-13行實現a旋轉後存放在c,14-16行把c儲存回a。

主函式中。20行判斷a,b是否相等,如相等則i=1,否則(22-26行),a旋轉(23行這裡要改成rotate(a,4);)判斷旋轉後是否相等(24行原來是正確的,不需要改),旋轉後相等則i=2。

27-31行完成輸出。

程式設計,c或c++,將乙個二維陣列順時針旋轉90度。

9樓:網友

舉乙個4*4的例子:

void function()

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

return ;

程式設計小白)

10樓:wzd愛的祈求

不知道對不對,試試。

#include

int main()

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

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

return 0;}

c語言指標程式設計題求解,C語言指標簡單的程式設計題

include stdio.h void sum int p 3 int total,int n n是總行數 int main int total 2 int i,j printf 輸入陣列a n for i 0 i 2 i sum a,total,2 printf 各行的和屬 n for i 0 ...

速求C語言的程式設計題,速求乙個C語言的程式設計題

include void main int temp 0,index 0 for i 0 i 10 i printf 最大數為 d 下標為 d n temp,index include stdio.h main max,flag,i max a 0 flag 0 設陣列第乙個數最大 for i 0 ...

一道c的程式設計題求大佬幫忙,一道C語言程式設計題,求大佬棒棒忙

1 思考問題1 什麼樣的兩個矩陣才能相乘?第乙個矩陣的列數與第二個矩陣的行數相等才能相乘。2 思考問題2 矩陣乘法的計算規則是什麼?這個不好說清楚,直接來乙個例子好理解些 3 編寫程式,這個就是迴圈計算,由於沒有編譯器,提示就到此。4 總之呢,要學會思考難點在 是哪個知識點不明白,編寫的時候結果不對...