Ввести два числа a и b.положительные числа уменьшить в 1,5 раза отрицательные -увеличить на 5. составить алгоритм в виде блок-схемы и программу.
208
359
Ответы на вопрос:
#include "stdafx.h" #include "malloc .h" #include < iostream> using namespace std; int _tmain(int argc, _tchar* argv[]) { // вводим исходные данные. int m ; int n; printf ("введите количество столбцов? m = "); cin > > m; printf ("введите количество строк? n = "); cin > > n; // создаем матрицу. int* pmatrix = (int*) malloc (m * n * sizeof (int)); // инициализируем другие переменные. int xmin = 0, // левая граница спирали xmax = m, // правая граница спирали (не включая ее, поэтому ниже будет использоваться xmax - 1) ymin = 0, // верхняя граница спирали ymax = n, // нижняя граница спирали (не включая ее, поэтому ниже будет использоваться ymax - 1) i = 0, // текущее число x, y; // расходный материал. // бесконечный цикл, пока не заполним матрицу. while (1) { // заполняем верхний ряд слева направо. for (x = xmin; x < xmax; x++) pmatrix[x + ymin * m] = i++; // заполнили весь верхний ряд. подвигаем вниз верхнюю границу. ymin ++; // если верхняя граница совпала с нижней, то заканчиваем цикл. if (ymin == ymax) break; // заполняем правый ряд сверху вниз. for (y = ymin; y < ymax; y++) pmatrix[xmax - 1 + y * m] = i++; // заполнили весь правый ряд. подвигаем налево правую границу. xmax --; // если правая граница совпала с левой, то заканчиваем цикл. if (xmax == xmin) break; // заполняем нижний ряд справа налево. for (x = xmax - 1; x > = xmin; pmatrix[x + (ymax - 1) * m] = i++; // заполнили весь нижний ряд. подвигаем вверх нижнюю границу. ymax --; // если верхняя граница совпала с нижней, то заканчиваем цикл. if (ymin == ymax) break; // заполняем левый ряд снизу вверх. for (y = ymax - 1; y > = ymin; pmatrix[xmin + y * m] = i++; // заполнили весь левый ряд. подвигаем направо левую границу. xmin ++; // если правая граница совпала с левой, то заканчиваем цикл. if (xmax == xmin) break; // если мы все еще здесь, значит идем на очередной виток спирали.. } // есть предположение, что спираль заполнена. напечатаем ее, посмотреть.. for (y = 0; y < n; y++) { // печатаем строку. for (x = 0; x < m; x++) printf ("i, ", pmatrix[x + y * m]); // переходим на другую строку. printf ("\r\n"); } // освобождаем память и выходим. free (pmatrix); pmatrix = 0; }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
linamalina699606.10.2020 13:03
-
kolyakuzmin200604.03.2020 22:25
-
KKIUY10.07.2022 12:36
-
mgarkanov19.03.2021 05:33
-
69supreme18.04.2022 00:09
-
romankomarov108.07.2022 21:34
-
taykinamatilda14.03.2022 16:39
-
Музалевская02.05.2020 04:12
-
12345778999987601.01.2023 00:27
-
vedruss788125.05.2020 07:40
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.