Решаем задачи Абрамян на C. Array49

Array49. Дан целочисленный массив размера $$N$$. Если он является перестановкой, то есть содержит все числа от $$1$$ до $$N$$, то вывести $$0$$; в противном случае вывести номер первого недопустимого элемента.

Решение:

Другие задачи из раздела Array можно посмотреть здесь.

Комментарии:

Комментарии 1

  • #include
    #include
    int main()
    {
    setlocale(LC_CTYPE, «Russian»);
    int arr[100];
    int n, sum;
    printf(«Введите размер массива: «);
    scanf_s(«%d», &n);
    int i;
    for (i = 0; i < n; ++i)
    {
    printf("arr[%d]: ", i + 1);
    scanf_s("%d", &arr[i]);
    }
    for (i = 0; i n || arr[i] < 0)
    {
    printf_s("\n%d", i + 1);
    return 0;
    }
    }
    printf_s("\n");
    int q;
    for(i = 0; i < n; ++i)
    {
    for (int t = 0; t < n — 1; ++t)
    {
    q = i + 1;
    }
    for (int j = 0; j < n; ++j)
    {
    if (arr[j] == arr[j-q])
    {
    printf_s("%d", j+1);
    return 0;
    }
    }
    }
    sum = 0;
    for (i = 0; i < n; i++)
    {
    sum += arr[i];
    }
    int max, min;
    max = arr[0];
    for (i = 1; i max)
    {
    max = arr[i];
    }
    min = arr[0];
    for (i = 1; i < n; i++)
    if (arr[i] < min)
    {
    min = arr[i];
    }
    int k;
    k = (min + max) * (max — min + 1) / 2;
    if (sum == k)
    {
    printf_s("\n%d", 0);
    }
    return 0;
    }

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *