Предмет: Информатика, автор: denbrativnyk

На мові програмування С/С++

Приложения:

NqVixer: Елементи вектора вводяться користувачем або заповнюються рандомно?
lozromanik: Тут треба заповнити як на малюнку
NqVixer: В примітці сказано що це саме індекси вектора, а про значення елементів по цим індексам не сказано
denbrativnyk: Немає значення випадково чи вводити, будь як

Ответы

Автор ответа: NqVixer
1

Ответ:

#include <iostream>

#include <iomanip> //для красивого виводу в консоль (setw)

#include <vector>

using namespace std;

int main()

{

   vector<int> b(81);

   for (int i = 0; i < b.size(); i++) b[i] = i + 1; //заповнення вектора

   const int rows{ 9 }, cols{ 9 };

   int arr[rows][cols]{};

   int counter = 0, i{}, j = -1;

   while (counter < rows * cols)

   {

       while (j < cols - 1 && !arr[i][j + 1]) //заповнення вправо

           arr[i][++j] = b[counter++];

       while (i < rows - 1 && !arr[i + 1][j]) //заповнення вниз

           arr[++i][j] = b[counter++];

       while (j > 0 && !arr[i][j - 1]) //заповнення вліво

           arr[i][--j] = b[counter++];

       while (i > 0 && !arr[i - 1][j]) //заповнення вверх

           arr[--i][j] = b[counter++];

   }

   for (int i = 0; i < rows; i++)

   {

       for (int j = 0; j < cols; j++) cout << setw(4) << arr[i][j];

       cout << endl;

   }

   return 0;

}

Объяснение:

на малюнку, до речі, помилка, два рази повторюється "55"


lozromanik: Можете пояснити, що означає !arr[i][j + 1] в циклах
NqVixer: Масив arr спочатку ініціалізований нулями (завдяки uniform ініціалізації {}). Фактично ця умова теж саме, що "поки елемент * в напрямку * не заповнений". Коли цикл проходиться вправо, перевіряємо чи залишилися порожні елементи праворуч (j + 1), коли вниз, чи залишилися порожні елементи знизу (i + 1) і т.д. Таким чином навіть якщо змінити розмір масиву, він буде заповнюватися правильно. (якщо питання було про форму запису !arr[i][j + 1], то це теж саме що arr[i][j + 1] != 0)
NqVixer: теж саме що arr[i][j + 1] == 0, вже сам заплутався)
lozromanik: друге, величезне спасибі, тут річ у тому, що С++ 0 та відмінне від 0 інтерпретує як брехню та істину
Похожие вопросы
Предмет: Английский язык, автор: 15032005tihonov
Переведите текст на английский текст.
Давным-давно жили-были старик со старухой. Они жили в хорошеньком чистом доме, вокруг которого повсюду росли цветы. Но они не были счастливы, потому что были очень одиноки.
«Если бы только у нас была кошка!», — сказала старушка. «Кошка?», — спросил старик. «Да, милая маленькая киска», — сказала старушка. «Я достану тебе кошку, дорогая», сказал старик.
И он отправился за горы, чтобы найти кошку. Он шел долго-долго и пришел к горе, покрытой кошками.
Кошки здесь, кошки там,
Кошки и котята повсюду,
Сотни кошек,
Тысячи кошек,
Миллионы, миллиарды, триллионы кошек.
«О!», весело вскричал старик «Теперь я смогувыбрать самую красивую кошку и забрать ее с собой домой!» И он выбрал одну кошку. Она была белой. Но вдруг он увидел другого, черно-белого кота, и он был таким же красивым. И он взял и эту кошку. А затем он увидел серого котенка, который был таким же красивым, как и те кошки, поэтому старик взял и его. Но тут он заметил черного, очень красивого котенка. И старичок тоже взял его с собой. Вдруг он увидел коричневого с желтым кота. «Я должен забрать его с собой», воскликнул старик и так и поступил.
И вышло так, что каждый раз старичок находил все новых красивых кошек и выбрал их всех. А потом он отправился домой, чтобы показать своей старушкевсех этих красивых котят.
Они подошли к пруду. «Мяу, мяу! Мы хотим пить!», заплакали сотни, тысячи миллионы миллиарды триллионы кошек.
«Вот, здесь много воды», сказал старичок. Каждая кошка попила немного воды, и пруд опустел!
«Мяу, мяу! Теперь мы хотим есть!» сказали сотни, тысячи, миллионы, миллиарды, триллионы кошек.
«На холмах растет много травы», сказал старик. Каждая кошка немного поела, и ничего не осталось!
Старушка увидела, как они подходят к дому. «Боже мой!»— закричала она, «Что ты делаешь? Я просила одну маленькую кошку, и что же я вижу?
Кошки здесь, кошки там,
Кошки и котята повсюду,
Сотни кошек,
Тысячи кошек,
Миллионы, миллиарды, триллионы кошек.
Предмет: Окружающий мир, автор: ульяна576