Сформировать матрицу из перестановок одномерного массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите написать программу к задаче. Дан одномерный массив.Сформировать двумерный,поменяв элементы местами. Т.е. допустим дан одномерный массив a1 a2 a 3 И сформировать двумерный массив. a1 a2 a3 a2 a3 a1 a3 a1 a2

Решение задачи: «Сформировать матрицу из перестановок одномерного массива»

textual
Листинг программы
#include <stdio.h>
 
#define N 5
 
void Generate(int (*arr)[N])
{
  int i = 0;
  int j = 0;
 
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++)
    {
      if (i == 0)
      {
        arr[i][j] = j;
      }
      else
      {
        arr[i][j] = arr[i - 1][(j+1) % N];
      }
    }
  }
}
 
void Print(int (*arr)[N])
{
  int i = 0;
  int j = 0;
 
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++)
    {
      printf("%d ", arr[i][j]);
    }
    printf("\n");
  }
}
 
int main(void)
{
  int a[N][N];
 
  Generate(a);
  Print(a);
 
  return 0;
}

Объяснение кода листинга программы

Вывод на экран матрицы из перестановок одномерного массива:

  1. Включаем заголовочный файл для использования функций вывода на экран.
  2. Определяем размер массива N.
  3. Создаём функцию Generate, которая будет генерировать перестановки. В качестве аргумента передаём указатель на массив.
  4. Внутри функции объявляем две переменные для индексов i и j.
  5. В цикле for заполняем массив a значениями перестановок.
  6. Если i равно 0, то заполняем элемент arr[i][j] значением j.
  7. Иначе, значение элемента arr[i][j] равно arr[i-1][(j+1) % N].
  8. Создаём функцию Print для вывода матрицы на экран.
  9. В функции main создаём массив a размером N на N.
  10. Вызываем функцию Generate для заполнения массива a.
  11. Вызываем функцию Print для вывода матрицы на экран.
  12. Завершаем программу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы