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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.     int n;
  7.     int i;
  8.     int cnt = 0;
  9.     int *arr;
  10.  
  11.     puts("Enter n..");
  12.     scanf("%d", &n);
  13.  
  14.     arr = (int *) malloc(sizeof(int) * n);
  15.  
  16.     for(i = 0; i < n; ++i)
  17.     {
  18.         printf("\narr[%d] = ", i);
  19.         scanf("%d", &arr[i]);
  20.     }
  21.  
  22.     puts("");
  23.  
  24.     for(i = 0; i < n; ++i)
  25.     {
  26.         if(arr[i])
  27.             printf("%d ", arr[i]);
  28.         else
  29.             ++cnt;
  30.     }
  31.  
  32.     if(n)
  33.         printf("\nCount = %d\n", cnt);
  34.  
  35.     free(arr);
  36.  
  37.     printf("\nPress any key to continue . . . ");
  38.     getchar();
  39.     getchar();
  40.  
  41.     return 0;
  42. }

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

В этом коде:

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы