Есть ответ 👍

Ввести два числа a и b.положительные числа уменьшить в 1,5 раза отрицательные -увеличить на 5. составить алгоритм в виде блок-схемы и программу.

208
359
Посмотреть ответы 1

Ответы на вопрос:


#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

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS