国产探花免费观看_亚洲丰满少妇自慰呻吟_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++簡單實現螺旋矩陣的實例代碼,如果還有其他疑問,歡迎補充,有任何問題也可以與武林編輯一起討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若尔盖县| 姚安县| 若尔盖县| 河西区| 通化市| 册亨县| 宕昌县| 河东区| 福海县| 玉树县| 枣强县| 临朐县| 汾阳市| 泸溪县| 海阳市| 余姚市| 华阴市| 林周县| 文昌市| 酒泉市| 岳阳县| 安阳市| 名山县| 大新县| 麻江县| 汝阳县| 锡林浩特市| 汤阴县| 洪湖市| 鄂托克前旗| 双鸭山市| 安乡县| 阿坝县| 个旧市| 峨边| 望都县| 平远县| 宁安市| 永年县| 肇庆市| 凌云县|