Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2022, 15:55   #1
AlexNew
Новичок
Джуниор
 
Регистрация: 03.11.2022
Сообщений: 1
По умолчанию Зполнение двумерного массива по особенному

Здравствуйте, помогите, пожалуйста, реализовать следующую идею.
Например: есть массив с элементами 1 2 3;
Нам нужно в двумерный массив, размером 3 колонки и 100 строк заполнить таким образом, чтобы заполнение символом '-' , шло как показано на рисунке.
То есть заполнение шло с самого низу и ровно столько палочек в колонке, сколько в изначальном массиве.
Желательно с выводом.

Заранее спасибо!

*Массив мне необходимо делать динамическим, но с этим проблем нет.
То, что я попытался сделать:


char** matrix = new char* [100];
for (int i = 0; i < 100; i++)
{
matrix[i] = new char[3]{};
}

for (int i = 99; i > 0; i--)
{
for (int j = 2; j > 0; j--)
{
if (place[j] != 0)
matrix[i][j] = '-';
else
continue;
}
}
Изображения
Тип файла: png 1.png (4.0 Кб, 19 просмотров)
AlexNew вне форума Ответить с цитированием
Старый 03.11.2022, 16:27   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

А чем заполнять остальные элементы. Пробелами? Тогда так
Код:
for (int i = 0; i < 100; ++i) if (100 - n <= i) {
  for (int j = 0; j < 3; (matrix[i][j++] = (j < 3 - place[n + i - 100]) ? ' ' : '-'));
} else for (int j = 0; j < 3; matrix[i][j++] = ' ');
for (int i = 0; i < 100; ++i) {
  std::cout << "matrix[" << i << "] = ";
  for (int j = 0; j < 3; std::cout << matrix[i][j++] << " ");
  std::cout << std::endl;
}
macomics вне форума Ответить с цитированием
Старый 04.11.2022, 02:27   #3
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

AlexNew, здесь удобнее по столбцам заполнять:
Код:
#include <stdio.h>
#include <algorithm>

using namespace std;

int main() {
  const int width = 3;
  const int height = 100;
  const int minuses_count[width] = {1, 2, 3}; // сколько минусов внизу столбца

  char** matrix = new char*[height];
  for (int row = 0; row < height; row++) {
    matrix[row] = new char[width];
  }

  for (int col = 0; col < width; col++) {
    int spaces_count = max(height - minuses_count[col], 0);
    // верхняя часть столбца -- пробелы
    for (int row = 0; row < spaces_count; row++) {
      matrix[row][col] = ' ';
    }
    // нижняя часть столбца -- минусы
    for (int row = spaces_count; row < height; row++) {
      matrix[row][col] = '-';
    }
  }

  for (int row = 0; row < height; row++) {
    for (int col = 0; col < width; col++) {
      printf("%c ", matrix[row][col]);
    }
    printf("\n");
  }

  for (int row = 0; row < height; row++) {
    delete[] matrix[row];
  }
  delete[] matrix;
  return 0;
}
Цитата:
Сообщение от macomics Посмотреть сообщение
Код:
for (int i = 0; i < 100; ++i) if (100 - n <= i) {
  for (int j = 0; j < 3; (matrix[i][j++] = (j < 3 - place[n + i - 100]) ? ' ' : '-'));
} else for (int j = 0; j < 3; matrix[i][j++] = ' ');
И чему равно n в этом мутном коде?
Пётр Седов вне форума Ответить с цитированием
Старый 04.11.2022, 07:25   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Сам догадайся.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из двумерного массива[Bi,j]m,n построить массив С, выполняя деления каждого элемента массива В на min элемент в столбце. sloNICK Общие вопросы C/C++ 5 26.01.2020 08:58
Обработка двумерного массива Андрей77777 Помощь студентам 3 15.11.2012 15:05
Транспонирование двумерного массива Ruska95 Общие вопросы C/C++ 1 13.11.2012 10:05
Обработка двумерного массива. maxim260489 Паскаль, Turbo Pascal, PascalABC.NET 1 16.01.2012 13:24
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04