Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Не могу никак понять, как сделать данные задания. Был бы очень благодарен за помощь. 1. Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов. Если кому не сложно, приписывайте коменты, чтобы я понимал что там делается, т.к. я ещё новичек к СИшке.

Решение задачи: «Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов»

textual
Листинг программы
#include <stdio.h>      // puts, printf
#include <stdlib.h>     // malloc, free
 
int main(void)
{
    int n;
    puts("Input n:");
    scanf("%d", &n);
    if( n <= 0 ) { return 1; }
 
    int* array = malloc(sizeof(int) * n);
    int i;
    for( i = 0; i < n; ++i ) {
        printf("Input element %d: ", i);
        scanf("%d", &array[i]);
    }
 
    int k = 0;
    puts("Elements:");
    for( i = 1; i < n; ++i ) {
        if( array[i] < array[i - 1] ) {
            printf("%d ", array[i]);
            ++k;
        }
    }
 
    printf("\nNumber of elements = %d\n", k);
 
    free(array);
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Пользователю предлагается ввести количество элементов в массиве (n).
  2. Если n меньше или равно нулю, программа завершается с кодом ошибки.
  3. В динамической памяти выделяется массив из n целых чисел.
  4. Пользователю предлагается ввести n целых чисел и сохраняются в массиве.
  5. Инициализируется счётчик элементов (k) меньше своих левых соседей.
  6. В цикле выводятся элементы массива, и если текущий элемент меньше своего левого соседа, то увеличивается счётчик k и выводится текущий элемент.
  7. Выводится количество элементов меньше своих левых соседей (k).
  8. Массив и переменные освобождаются от использования и программа завершается.

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

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