C語言筆記 — 二維陣列(Two dimensional Arrays)

Sharon Peng
3 min readAug 7, 2019

--

原先講的都是一維陣列,二維陣列的不同在於,他可以更有效地儲存我們想要的資料等等。我們可以將二維陣列假想是一搬在word, ppt中所做的表格。

下方是一個簡單的2 ✖️3的二維陣列。裡面的{9, 8, 7}分別代表陣列中的00, 01, 02;而{6, 5, 4} 則分別代表10, 11, 12; 所以當我們想要呼叫他們的時候

arr[0][0] == 9;

arr[0][2] == 7;

#include<stdio.h>int main()
{
int arr[2][3] = {
{9, 8, 7},
{6, 5, 4}
};

for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
printf("%d%d-", i, j);
printf("%d ", arr[i][j]);
}
puts("");
}
return 0;
}
//也可以這樣寫
//int arr[2][3] = {{9, 8, 7}, {6, 5, 4}};

還有一點比較重要的是,行跟列的順序要記清楚(先行才是),本人就因為這點吃了不少苦啊~

再來就換到二維陣列的應用拉!

當初我們老師直接出一個題目讓我們「好好地認識」二維陣列,所以話不多說,立馬出相同題目來讓讀者好好動一下腦筋吧~

下一節會給詳解,就好好放心去試吧。

題目如下:(英文題目)

本題輸入測資的數目不一定,請利用While EOF的方式作為輸入的手段。

If you have good observations skills, you may found that building a Magic Square is simple. A Magic Square has only an odd number N of rows and columns where N < 100. A Magic Square is created by integer numbers in the range from 1 to , with a peculiar property, the “sum of the numbers” in each row, column and diagonal are the same.

Input
Each line contains an Integer N denoting a N * N Magic Square.

Output
如果N是偶數則輸出”It is not an odd number. ”。
如果N是奇數則先輸出直橫列的加總數字,再輸出N * N數字陣列,每個數字以%5d 格式輸出。
每個測資間請空一行。

輸入:

3

4

5

輸出:

請大家好好努力一下吧~(網路上也有很多大神有自己的解法可以參考一下)

--

--