Из последовательности чисел выбрать нули и подсчитать их число, а оставшиеся числа вывести в одну строку - C (СИ)

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

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

Из последовательности чисел а1, а2, ..., аn выбрать числа, равные нулю, подсчитать их число, а оставшиеся числа вывести в одну строку

Решение задачи: «Из последовательности чисел выбрать нули и подсчитать их число, а оставшиеся числа вывести в одну строку»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int n;
    int i;
    int cnt = 0;
    int *arr;
 
    puts("Enter n..");
    scanf("%d", &n);
 
    arr = (int *) malloc(sizeof(int) * n);
 
    for(i = 0; i < n; ++i)
    {
        printf("\narr[%d] = ", i);
        scanf("%d", &arr[i]);
    }
 
    puts("");
 
    for(i = 0; i < n; ++i)
    {
        if(arr[i])
            printf("%d ", arr[i]);
        else
            ++cnt;
    }
 
    if(n)
        printf("\nCount = %d\n", cnt);
 
    free(arr);
 
    printf("\nPress any key to continue . . . ");
    getchar();
    getchar();
 
    return 0;
}

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

В этом коде:

  1. Объявлены переменные:
    • n - количество чисел в последовательности
    • i - счётчик для циклов
    • cnt - счётчик нулей
    • arr - массив для хранения чисел
  2. Запрошен ввод количества чисел и сохранён в переменной n.
  3. Выделен память под массив arr с помощью malloc.
  4. В цикле заполнен массив arr числами, которые введены пользователем.
  5. В цикле выведены все числа из массива arr, при этом если число равно нулю, то увеличено значение переменной cnt.
  6. Выведено количество нулей.
  7. Освобождён память, выделенную под массив arr, с помощью free.
  8. Выведено сообщение Press any key to continue . . . и ожидается нажатие клавиши.

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


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

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

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