導航:首頁 > 編程知識 > 編程運行時怎麼把行的變成列

編程運行時怎麼把行的變成列

發布時間:2024-06-27 23:19:59

① c語言編程 將一個隨機輸入的4*4二維數組逆時針旋轉90度後以4行4列輸出

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

#include"stdio.h"
#include"stdlib.h"
#defineN4
intmain(intargc,char*argv[]){
intm[N][N],i,j,*p,**q;
p=(int*)malloc(sizeof(int)*N*N);//按一維數組申請臨時空間以便於釋放
q=(int**)malloc(sizeof(int*)*N);//另申請一個一維指針數組空間
if(!p||!q){
printf("Applicationmemoryfailure,exit... ");
return0;
}
for(j=i=0;i<N;q[i++]=p+j,j+=N);//將指針數組空間組織成二維數組
printf("... ");
for(i=0;i<N;i++){//向二維數組m輸入數據並輸出
for(j=0;j<N;j++){
scanf("%d",m[i]+j);
printf("%d ",m[i][j]);
}
printf(" ");
}
for(i=0;i<N;i++)
for(j=0;j<N;q[N-1-j++][i]=m[i][j]);//旋轉結果存入臨時空間
printf(" Aftertherotation: ");
for(i=0;i<N;i++){
for(j=0;j<N;printf("%d ",m[i][j++]=q[i][j]));//將結果復制到m並輸出
printf(" ");
}
free(p);//釋放臨時空間
free(q);//釋放指針空間
return0;
}

運行樣例如下:

閱讀全文

與編程運行時怎麼把行的變成列相關的資料

熱點內容
cefs文件系統 瀏覽:404
學平面設計個編程哪個好 瀏覽:701
如何把編程文件轉為hex 瀏覽:80
清除蘋果地圖來自地址 瀏覽:233
已經打開的文件如何清理 瀏覽:685
視頻網站有什麼用 瀏覽:70
多個表格文件怎樣壓縮文件 瀏覽:729
cad文件大很卡如何解決 瀏覽:633
將java程序打包成apk 瀏覽:277
2021唱吧文件找不到了 瀏覽:463
華為p9手機文件管理 瀏覽:284
固定在工具欄的文件夾怎麼查找路徑 瀏覽:667
半條命2有幾個版本 瀏覽:333
電腦管家微信備份文件夾 瀏覽:826
ubuntu文件夾解鎖 瀏覽:34
網站多少錢一單 瀏覽:382
系統鏡像恢復找不到文件 瀏覽:255
進什麼網站 瀏覽:588
修改了配置文件代碼沒有讀出來 瀏覽:749
vss資料庫是什麼 瀏覽:899

友情鏈接