Подпрограмма: Вводить числа до тех пор пока не будет введен 0, после ввода 0, вывести все введенные числа - C (СИ)

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

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

Вводить числа до тех пор пока не будет введен 0. Если будет введен 0, то вывести все введенные числа. помогите пожалуйста сделать подпрограммой.

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

textual
Листинг программы
#include <stdio.h>
 
int fill(int buff[], size_t size) {
    int val;
    if (size && (scanf("%d", &val) == 1) && val) {
        *buff = val;
        return fill(buff + 1, size - 1) + 1;
    }
    return 0;
}
 
void func(int buff[], size_t size) {
    int cnt = fill(buff, size);
 
    while (cnt--) {
        printf("%d ", *buff++);
    }
}
 
int main() {
    int buff[64];
 
    func(buff, sizeof(buff) / sizeof(*buff));
 
    return 0;
}

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

Вывод: Ввод чисел до тех пор, пока не введется 0, после чего выводятся все введенные числа.

  1. Подпрограмма fill() отвечает за заполнение массива buff числами, пока не введется 0. Она использует функцию scanf() для ввода числа, проверяет его на 0 и записывает в массив. Рекурсивно вызывает себя для оставшейся части массива. Возвращает количество введенных чисел.
  2. Функция func() использует функцию fill() для заполнения массива buff. После заполнения выводит все числа, используя цикл while.
  3. В функции main() создается массив buff размером 64 и вызывается функция func().
  4. Ввод чисел и вывод их на экран выполняется в консоли.

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


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

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

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