Вопрос задан 12.07.2023 в 12:30. Предмет Информатика. Спрашивает Кособокова Настя.

Заполнение диагоналями По данным числам n и m заполните двумерный массив размером n∗m числами от

1 до n∗m “диагоналями”, как показано в примере. Входные данные Вводятся два числа n и m. Выходные данные Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа. В языке Python для этого можно использовать метод rjust (выравнивание по правому краю с указанием числа позиций для вывода). Например, так: Примеры Ввод Вывод 3 5 1 2 4 7 10 3 5 8 11 13 6 9 12 14 15 Решите задачу на C++ Пожалуйста!!
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гисар Ліза.

Ответ:

#include <iostream>

int main(void){

   const int N = 3;

   const int M = 5;

   int mat[N][M];

   int i, j, row = 0, col = 0, n = 1;

   while(row <= (N - 1)){

       i = row;

       j = col;

       while((i < N) && (j >= 0))

           mat[i++][j--] = n++;    

       if(col < (M - 1))

           ++col;

       else

           ++row;

   }

   for(i = 0; i < N; ++i){

       for(j = 0; j < M; ++j){

           std::cout.width(3);

           std::cout << mat[i][j];

       }

       std::cout << std::endl;

   }

   return 0;

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи на C++ можно использовать следующий код:

cpp
#include <iostream> #include <iomanip> // Для использования метода setw using namespace std; int main() { int n, m; cin >> n >> m; int arr[n][m]; int num = 1; // Заполняем диагонали for (int d = 0; d < n + m - 1; d++) { for (int i = 0; i < n; i++) { int j = d - i; if (j >= 0 && j < m) { arr[i][j] = num++; } } } // Выводим полученный массив for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << setw(4) << arr[i][j]; } cout << endl; } return 0; }

Пример входных данных:

3 5

Пример вывода:

1 2 4 7 10 3 5 8 11 13 6 9 12 14 15

Объяснение кода:

  1. Мы считываем значения n и m.
  2. Создаем двумерный массив arr размером n на m.
  3. Заполняем массив числами от 1 до n * m диагоналями.
  4. Выводим полученный массив, используя setw(4) для выравнивания по правому краю и отвода на вывод каждого элемента ровно 4 символа.
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос