Сформировать матрицу из перестановок одномерного массива - 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; }
Объяснение кода листинга программы
Вывод на экран матрицы из перестановок одномерного массива:
- Включаем заголовочный файл
для использования функций вывода на экран. - Определяем размер массива N.
- Создаём функцию Generate, которая будет генерировать перестановки. В качестве аргумента передаём указатель на массив.
- Внутри функции объявляем две переменные для индексов i и j.
- В цикле for заполняем массив a значениями перестановок.
- Если i равно 0, то заполняем элемент arr[i][j] значением j.
- Иначе, значение элемента arr[i][j] равно arr[i-1][(j+1) % N].
- Создаём функцию Print для вывода матрицы на экран.
- В функции main создаём массив a размером N на N.
- Вызываем функцию Generate для заполнения массива a.
- Вызываем функцию Print для вывода матрицы на экран.
- Завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д