C# Дана последовательность натуральных чисел (одно число в строке), завершающаяся...

+573 голосов
5.8m просмотров

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


image

Информатика | 5.8m просмотров
Дан 1 ответ
+136 голосов

Ответ:

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 ReadSeqWhile(Func Predicate)

       {

           var rtemp = int.Parse(Console.ReadLine());

           while (Predicate(rtemp))

           {

               yield return rtemp;

               rtemp = int.Parse(Console.ReadLine());

           }

       }

   }

}

Объяснение:

(1.6k баллов)
+54

Задание отмечено как студенческого уровня. И отсюда возникает вопрос - если вы не в состоянии исправить мелкие синтаксические ошибки, из разряда забытой скобки, на которые ещё и чётко указывают среды разработки, может вы где то не там учитесь?

+154

То, что в этот раз я написал в комментариях, что решение содержит ошибку и как её исправить, произошло лишь потому, что в условие слегка разниться с примером ввода/вывода "Функция не возвращает значение, а сразу выводит на экран".

+42

На удивление, у меня всё прекрасно работает. Если вы работаете с C#, вероятнее всего вы работаете или в VS, или в VSCode. И та, и другая IDE весьма чётко и понятно описывают ошибки. Логика кода выстроена правильно, я никогда не добавляю решения вообще не протестировав их

+132

Только больше ошибок появляется

+86

Не хватает фигурной скобки после .ToList()
Перепробовала разные комбинации