アルゴリズムⅠ・講義メモ

・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に格納しよう
・格納が終わったら、全件の表示も行うこと

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です