Re: Графи
Поки що - маленька порада.
            if (room == 0) {
                cas[i][j] = '0';
                cas[j][i] = '0';
            }
            else {
                if (room == 1) {
                    cas[i][j] = '1';
                    cas[j][i] = '1';
                }
                else {
                    if (room == 2) {
                        cas[i][j] = '2';
                        cas[j][i] = '2';
                    }
                    else {
                        if (room == 3) {
                            cas[i][j] = '3';
                            cas[j][i] = '3';
                        }
                        else {
                            if (room == 4) {
                                cas[i][j] = '4';
                                cas[j][i] = '4';
                            }
                            else {
                                if (room == 5) {
                                    cas[i][j] = '5';
                                    cas[j][i] = '5';
                                }
                            }Для початку: це дещо неочевидно, але якщо сприймати else if як єдину конструкуцію, такі вирази стають значно виразнішими.
            if (room == 0) {
                cas[i][j] = '0';
                cas[j][i] = '0';
            }
            else if (room == 1) {
                cas[i][j] = '1';
                cas[j][i] = '1';
            }
            else if ...Але це - у тих випадках, де це потрібно. Тут же це не потрібно. Скористаємося з того факту, що коди цифр 0..9 в ASCII послідовні (можна було б і без цього, але тоді код був би трохи складнішим):
          int room = rand() % 6;
          char room_as_char = '0'+room; //room_as_char - це наш номер як символ
          cas[i][j] = cas[j][i] = room_as_char;От і все. Без усіх if-else.
За бажання можна взагалі скоротити до
          cas[i][j] = cas[j][i] = '0' + rand() % 6;замість 20 рядків у 6 рівнів вкладеності.
