・1次元配列の2次元変換。線形探索
提出フォロー:2次元配列のプログラム・整数配列の最小値:array8
・下記の配列を用いて部屋ごとのモンスター数の最小値を表示しよう
int[,] jimi = { {4,8,9},{6,5,3} };
・「●階●号室の●匹が最小」と表示すること
※(自由参加課題)TOP3を表示しよう
ヒント:int型の上限値はint.MaxValueで得られるので、これを仮の最小値とすれば良い
作成例
int[,] jimi = { {4,8,9},{6,5,3} }; //部屋ごとのモンスター数
int min = int.MaxValue, mini = 0, minj = 0; //最小値、最小要素の添字①、②
for (var i = 0; i < 2; i++) { //階数の分だけ繰返す
for (var j = 0; j < 3; j++) { //階ごとの部屋の数だけ繰返す
if (jimi[i, j] < min) { //要素[i,j]が最小値未満なら
min = jimi[i, j]; //最小値を更新
mini = i; //最小要素の添字①も更新
minj = j; //最小要素の添字②も更新
}
}
}
Console.WriteLine("{0}階{1}号室の{2}匹が最小", mini + 1, minj + 1, min); //階と部屋と匹数を表示
1次元配列の2次元変換
・1次元配列[x]に格納されているデータを2次元配列[a,b]にコピーしたい
例: int[] val = {1,2,3,4,5,6} を int[,] val2 = {{1,2,3},{4,5,6}} としたい
・2種類の方法がある
① forの2重ループの中で、1次元配列の要素を1個ずつ格納していく
② 1次元配列の添字÷bの数を添字aにして、1次元配列の添字÷bの数の余りを添字bにする
1次元配列の2次元変換:方法① arraycopy1
・int[] val = {10,20,30,40,50,60} を int[2,3] val2に格納しよう
・格納が終わったら、全件の表示も行うこと