iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

突然冒出的自學計畫系列 第 22

#Day22 二維陣列和assign的問題(?

  • 分享至 

  • xImage
  •  

今天看到了一個酷東西,叫二維陣列
就是原本的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的解法,但好像還是直接複製一個原本的,再去改變其中一個,才是比較常見的作法(不確定是不是唯一方法)


上一篇
#Day21 陣列東西小總匯
下一篇
#Day23 做OOXX遊戲-1
系列文
突然冒出的自學計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言