Дан целочисленный массив размера 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.

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


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

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

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