Предмет: Информатика,
автор: yavsepoymu
C#
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0.
Выведите все нечетные числа из этой последовательности, сохраняя их порядок
В этой задаче нельзя использовать глобальные переменные и передавать какие-либо параметры в рекурсивную функцию
Функция получает данные, считывая их с клавиатуры
Функция не возвращает значение, а сразу же выводит результат на экран Основная программа должна состоять только из вызова этой функции
Приложения:

Ответы
Автор ответа:
1
Ответ:
using System;
using System.Collections;
using System.Collections.Generic;
namespace CSLear
{
class Program
{
static void Main(string[] args)
{
var InputStream = ReadSeqWhile(x => x != 0);
foreach (int item in InputStream)
{
if (item % 2 != 0) { Console.WriteLine(item); }
}
}
public static IEnumerable<int> ReadSeqWhile(Func <int, bool> Predicate)
{
var rtemp = int.Parse(Console.ReadLine());
while (Predicate(rtemp))
{
yield return rtemp;
rtemp = int.Parse(Console.ReadLine());
}
}
}
}
Объяснение:
KnowsUser1:
Упс, заметил только сейчас - программа выводит в консоль удовлетворяющий элемент последовательности сразу, как только считывает его, не дожидаясь до конца ввода. Что бы исправить, добавьте в проект пространство имён System.Linq
foreach (var item in InputStream.Where(x => x % 2 != 0).ToList(){ Console.WriteLine(item)}
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace kp9p_pr_4_zad_10
{
class Program
{
static void Main(string[] args)
{
var InputStream = ReadSeqWhile(x => x != 0);
foreach (var item in InputStream.Where(x => x % 2 != 0).ToList()
{
Console.WriteLine(item);
}
}
public static IEnumerable ReadSeqWhile(Func Predicate)
{
var rtemp = int.Parse(Console.ReadLine());
while (Predicate(rtemp))
{
yield return rtemp;
rtemp = int.Parse(Console.ReadLine());
}
}
}
}
Перепробовала разные комбинации
Похожие вопросы
Предмет: Русский язык,
автор: kaprizzzzzz
Предмет: Русский язык,
автор: про100nik
Предмет: Українська мова,
автор: moviackdim
Предмет: МХК,
автор: Кися12345678901