時間緊張,先記一筆,后續(xù)優(yōu)化與完善。
? ? 例如,如下的方陣:
?1 ?2 ?3 ?4
?5 ?6 ?7 ?8
?9 10 11 12
????13 14 15 16
????順時針旋轉(zhuǎn),是卻如下結(jié)果:
13 ?9 ?5 ?1
14 10 ?6 ?2
15 11 ?7 ?3
16 12 ?8 ?4
#include <stdio.h> void rotate(int* x, int rank) { int* y = (int*)malloc(sizeof(int) * rank * rank); for(int i=0; i<rank * rank; i++) { // 以原第一行停止分析 一行數(shù)變成一同列 以原第一列為例,變成一同行。 (i%rank)*rank使列變成行 rank-(i/rank)-1) 使行變成列 y[(i%rank)*rank+(rank-(i/rank)-1) ] = x[i]; } for(i=0; i<rank*rank; i++) { x[i] = y[i]; } free(y); } int main(int argc, char* argv[]) { int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int rank = 4; rotate(&x[0][0], rank); for(int i=0; i<rank; i++) { for(int j=0; j<rank; j++) { printf("%4d", x[i][j]); } printf("\n"); } return 0; }
文章結(jié)束給大家分享下程序員的一些笑話語錄: 一個合格的程序員是不會寫出 諸如 “摧毀地球” 這樣的程序的,他們會寫一個函數(shù)叫 “摧毀行星”而把地球當(dāng)一個參數(shù)傳進去。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
