国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++簡單實現螺旋矩陣

2020-02-24 14:37:08
字體:
來源:轉載
供稿:網友

螺旋矩陣是指一個呈螺旋狀的矩陣,它的數字由第一行開 始到右邊不斷變大,向下變大, 向左變大,向上變大,如此循環,下面跟隨武林技術小編一起來詳細的了解下C++簡單實現螺旋矩陣吧。

通過觀察發現矩陣的下標有這樣一個規律:a行遞增后b列遞增然后c行遞減再d列遞減,但是對應值卻是逐漸增加的。因此可用4個循環實現,需要注意的是在賦值時不要把之前的值覆蓋了。所以在這里選擇相同顔色部分賦值,代碼如下:

?


#include
#include

?

using namespace std;

// 輸出螺旋矩陣
void Matrix()
{
??? const int size = 10; // 矩陣大小
??? int matrix[size][size] = {0};

??? int row = 0;
??? int col = 0;

??? int start = 1; // 起始值
??? int temp = size;
??? for (int count = 0; count ??? {
??????? for (; col ??????????? matrix[row][col] = start++;
??????? for (; row ??????????? matrix[row][col] = start++;
??????? for (col = temp - 1; col > count; col--) // c排賦值
??????????? matrix[row][col] = start++;
??????? for (row = temp - 1; row > count; row--) // d排賦值
??????????? matrix[row][col] = start++;

??????? // 進入下一圈
??????? temp--;
??????? row++;
??????? start -= 1; // 這里-1是因為在換圈的時候會多加1
??? }

??? if (0 != size % 2) // 如果size為奇數則最后會有一個數遍歷不到,這里補上
??? matrix[row][col+1] = start + 1;

??? // 輸出數組
??? for (int i = 0; i ??? {
??????? for (int j = 0; j ??????? {
??????????? cout ??????? }
??????? cout ??? }
}

int main(int argc, char **argv)
{
??? Matrix();
??? return 0;
}


結果如下(分奇、偶數):

?

?

以上就是C++簡單實現螺旋矩陣的實例代碼,如果還有其他疑問,歡迎補充,有任何問題也可以與武林編輯一起討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平武县| 炎陵县| 西安市| 成都市| 江川县| 全州县| 灯塔市| 思南县| 阿瓦提县| 尼勒克县| 荃湾区| 法库县| 正镶白旗| 新兴县| 上杭县| 西乌珠穆沁旗| 普陀区| 禄劝| 惠来县| 尼勒克县| 金坛市| 平阴县| 长白| 商丘市| 甘泉县| 岗巴县| 新竹县| 安丘市| 蕉岭县| 醴陵市| 杨浦区| 门源| 来凤县| 民县| 松桃| 兖州市| 墨玉县| 集安市| 永顺县| 翁源县| 罗平县|