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

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

發布時間: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;
}

運行樣例如下:

閱讀全文

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

熱點內容
蘋果6手機網路沒信號怎麼回事啊 瀏覽:378
手機掃描文件轉換成word 瀏覽:636
手機本地視頻的文件夾在哪裡 瀏覽:908
蘋果11無法安裝app找不到描述文件 瀏覽:363
咋新建cad文件 瀏覽:969
窩窩app怎麼樣自動關 瀏覽:228
蘋果電腦怎麼用wps生成多個文件夾 瀏覽:309
蘋果手機哪裡有賣 瀏覽:83
app登錄狀態為什麼不過期 瀏覽:160
win10創意者無法升級 瀏覽:59
如何查殺後門程序 瀏覽:498
定類數據可以用哪些描述統計方法 瀏覽:278
微信公眾號閱讀全文怎麼跳轉文件 瀏覽:935
迷你編程怎麼免費進入 瀏覽:354
蘋果應用設置密碼 瀏覽:21
windowsmac共享文件夾 瀏覽:274
數據安全性和固態硬碟哪個好 瀏覽:433
word為什麼圖片不能旋轉 瀏覽:732
qq上本機文件怎麼刪除不了怎麼辦 瀏覽:117
美食的視頻app有哪些 瀏覽:251

友情鏈接