Подпрограмма: Вводить числа до тех пор пока не будет введен 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, после чего выводятся все введенные числа.
- Подпрограмма fill() отвечает за заполнение массива buff числами, пока не введется 0. Она использует функцию scanf() для ввода числа, проверяет его на 0 и записывает в массив. Рекурсивно вызывает себя для оставшейся части массива. Возвращает количество введенных чисел.
- Функция func() использует функцию fill() для заполнения массива buff. После заполнения выводит все числа, используя цикл while.
- В функции main() создается массив buff размером 64 и вызывается функция func().
- Ввод чисел и вывод их на экран выполняется в консоли.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д