Функция, проверяющая, является ли заданная последовательность чисел симметричной - C (СИ)
Формулировка задачи:
Составить функцию, которая для одномерного массива целых чисел проверяет, является ли заданная последовательность чисел симметричной. В случае симметричности функция должна возвращать значение истина, в противном случае - ложь. С помощью составленной функции определить в матрице Х(k,m),
k<= 12, m<=14 все строки, являющиеся симметричными, и переписать их без пропусков в новую матрицу.
Прогу через функции надо.
Решение задачи: «Функция, проверяющая, является ли заданная последовательность чисел симметричной»
textual
Листинг программы
#include <stdio.h> #define K 12 #define M 14 int control(int arr[], int size) { int n1, n2; n1 = 0; n2 = size - 1; while (n1 < n2) { if (arr[n1] != arr[n2]) return 0; ++n1; --n2; } return 1; } int main(void) { int arr[K][M] = { {1,2,3,4,5,6,7,7,6,5,4,3,2,1}, {0,9,8,7,6,5,4,3,2,2,2,1,1,1}, {7,6,5,4,3,2,1,1,2,3,4,5,6,7}, {1,2,3,4,5,6,7,8,9,0,1,2,3,4}, {1,1,1,1,2,2,2,2,2,2,2,1,1,1}, {1,2,3,4,5,6,7,1,2,3,4,5,6,7}, {1,3,2,4,5,7,6,6,7,5,4,2,3,1}, {3,3,3,2,2,1,1,3,3,3,2,2,1,1}, {5,5,5,5,5,5,5,5,3,5,5,5,5,5}, {1,2,3,4,5,6,7,6,6,5,4,3,2,1}, {7,1,6,2,5,3,4,4,3,5,2,6,1,7}, {0,0,0,0,0,0,1,2,0,0,0,0,0,0} }; int i = 0; int n = 0; while (i < K) if (control(arr[i++], M)) ++n; int arr2[n][M]; int j = 0; int k; i = 0; while (i < K) { if (control(arr[i], M)) { k = 0; while (k < M) arr2[j][k] = arr[i][k++]; ++j; } ++i; } puts("------------------------------"); i = 0; while (i < n) { j = 0; while(j < M) printf("%i ", arr2[i][j++]); putchar('\n'); ++i; } return 0; }
Объяснение кода листинга программы
В этом коде реализована функция, которая проверяет, является ли заданная последовательность чисел симметричной. Для этого используется алгоритм, который сравнивает элементы последовательности с их зеркальными отражениями. Если последовательность симметрична, то все пары элементов равны. Код начинается с объявления двух массивов: массива K размера M и массива M размера N. Затем в цикле заполняется второй массив, путем копирования элементов из первого массива, если они присутствуют в обоих массивах. Далее идет проверка на симметрию. Если элементы не равны, то возвращается 0, иначе функция продолжает работу. Затем идет вывод на экран полученного результата.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д