今天看到了一個酷東西,叫二維陣列
就是原本的array只會有A[i],但二維會有兩個向量變成A[i,j]
前面有提到過一維陣列的定義方式:
int[]
那二維其實很直觀,就是變成
int[,]
另外提醒,之前寫猜數字遊戲時有提到過C#中的陣列是有分型別的
因此如果陣列中想輸入的是數字,才是使用intㄛ
好ㄉ,試做時間
int[,] S = new int[2,2];
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 2; j++)
{
S[i, j] = int.Parse(Console.ReadLine());
}
}
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 2; j++)
{
Console.WriteLine(S[i, j] +" " );
}
Console.WriteLine(“\n”)
}
理論上當我輸入0,1,2,3時,他應該要可以印
0 1
2 3
但不知道那裡的bug,我印出來都是
0
1
2
3
真的是找不到
後來我就給他來個土法煉鋼
for (int i = 0; i < 2; i++)
{
Console.WriteLine(S[i, 0] +" " + S[i,1]);
}
完美的印出想要的結果了,雖然好像沒有真正的解決到問題。
話說我剛發現,昨天講的sort & reverse好像不能像在Python中一樣用法
在Python裡面,我們可以寫例如
S=L.sort()
也就是將sort過的L指定進S裡面
不過似乎是型別關係,
int[] r=Array.Sort(a);
會報錯,而Reverse同理。
錯誤資訊:無法將void轉換為int[]
我至今還是看不懂void,大家都寫得好抽象。
總之我又查了一下assign到新array的解法,但好像還是直接複製一個原本的,再去改變其中一個,才是比較常見的作法(不確定是不是唯一方法)