Зависание (возможно где то вечный цикл) - C#
Формулировка задачи:
При нажатии на кнопку зависает всё. Ошибок компиляции нет. В чём проблема. Вот код:
private void button1_Click(object sender, EventArgs e) { k_kol = 10; m_kol = 15; bool flag1 = true; Random rnd = new Random(); while (flag1) { for (int i = 0; i <= 9; i++) { for (int j = 0; j <= 9; j++) { mass[i, j] = 0; korabl = 0; } } } while (korabl < k_kol) { index = 0; x = rnd.Next(0, 9) + 1; y = rnd.Next(0, 9) + 1; if (mass[x, y] == 0) { if (proverka2(index)) { mass[x, y] = -1; korabl++; } } } mayak = 0; while (mayak < m_kol) { index = 0; x = rnd.Next(0, 9) + 1; y = rnd.Next(0, 9) + 1; if (mass[x, y] != -1) { if (proverka2(index)) { mass[x, y] = -1; korabl++; } } } index = 0; for (int ii = 0; ii <= 9; ii++) { for (int jj = 0; jj <= 9; jj++) { if (mass[ii, jj] == -1) { bool flag = false; for (int k = 0; k <= 10; k++) { if (mass[ii, k] == 1) { flag = true; } } for (int k = 0; k <= 10; k++) { if (mass[k, jj] == 1) { flag = true; } } if (flag) { index++; } } if (index == k_kol) { flag1 = false; } } } }
Решение задачи: «Зависание (возможно где то вечный цикл)»
textual
Листинг программы
bool flag1 = true; Random rnd = new Random(); while (flag1) { for (int i = 0; i <= 9; i++) { for (int j = 0; j <= 9; j++) { mass[i, j] = 0; korabl = 0; } } }