C語言 經(jīng)典題目螺旋矩陣 實例詳解
C語言 經(jīng)典題目螺旋矩陣
//N階螺旋矩陣 #include <stdio.h> #include <stdlib.h> int main() { int N,i,j,n,num=1; int a[10][10]={0}; printf("輸入你要輸出的幾階中斷:"); scanf("%d",&N); for(n=0;n<=N/2;n++) { for(j=n;j<=N-n-1;j++) a[n][j]=num++; for(i=n+1;i<N-n-1;i++) a[i][N-n-1]=num++; for(j=N-n-1;j>n;j--) a[N-n-1][j]=num++; for(i=N-n-1;i>n;i--) a[i][n]=num++; } //輸出螺旋矩陣 for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%2d ",a[i][j]); printf("\n"); } system("pause"); return 0; }
思路是這樣的,剛開始很容易想到順時針賦值,如下圖為5階:分為四個方向順時針賦值。每個方向負(fù)責(zé)相同數(shù)量的元素。
但這樣,后來發(fā)現(xiàn)當(dāng)N為基數(shù)時,最中心一個數(shù)不能被賦值。
所以改為還是順時針賦值,只是->方向多負(fù)責(zé)一個元素,右| 方向少負(fù)責(zé)一個元素
最后的運(yùn)行結(jié)果如下圖:
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C語言循環(huán)隊列與用隊列實現(xiàn)棧問題解析
循環(huán)隊列又叫環(huán)形隊列,是一種特殊的隊列。循環(huán)隊列解決了隊列出隊時需要將所有數(shù)據(jù)前移一位的問題,本篇帶你一起看看循環(huán)隊列的問題和怎樣用隊列實現(xiàn)棧2022-04-04QT實現(xiàn)按鈕開關(guān)Form窗體的效果的示例代碼
本文主要介紹了QT實現(xiàn)按鈕開關(guān)Form窗體的效果的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07vs2022重新編譯opencv-python?cuda加速時報錯的問題解決
本文主要介紹了vs2022重新編譯opencv-python?cuda加速時報錯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04