Дан целочисленный массив размера N. Если он является перестановкой, то вывести 0 - C (СИ)
Формулировка задачи:
Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести 0; в противном случае вывести номер первого недопустимого элемента.
Решение задачи: «Дан целочисленный массив размера N. Если он является перестановкой, то вывести 0»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define N 10 int main(int argc, char *argv[]){ int array[N]= {10,2,3,4,5,1,7,8,9,10}; int checker[N] ; (void)memset(checker, 0, N*sizeof(int)); for(int i = 0 ; i < N ; i++){ if(!checker[array[i] - 1]) { ++checker[array[i] - 1] ; } else { printf("\r\n wrong %d \r\n", array[i]) ; return 0 ; } } printf("\n\r 0 \n\r") ; return 0; }
Объяснение кода листинга программы
В этом коде рассматривается целочисленный массив размера N, который, возможно, является перестановкой. Код сначала инициализирует этот массив и дополнительный массив checker, который используется для проверки уникальности элементов массива. Затем он проходит через каждый элемент массива и проверяет, встречается ли он в массиве checker. Если элемент не уникален, код выводит сообщение об ошибке и завершает работу. Если все элементы уникальны, код выводит сообщение 0
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д