Вывести массив 3

Задан массив из n целых чисел. Вывести только его положительные элементы, не меняя первоначальный порядок.

Входные данные

Первая строка содержит число n (1 ≤ n ≤ 100). Во второй строке записаны n целых чисел, каждое из которых не превышает по модулю 100.

Выходные данные

В первой строке вывести количество положительных элементов массива. Во второй строке вывести сами положительные элементы. Если положительных элементов в массиве нет, то вывести “NO”.

Алгоритм решения задачи

  • Фильтруем входные данные с помощью оператора Where LINQ.

Решение

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        var n = Convert.ToInt32(Console.ReadLine());
        var p = Array.ConvertAll(Console.ReadLine().Split(' '), s => int.Parse(s)).ToList()
        .Where(x => x > 0);
        var count = p.Count();
        if (count == 0)
        {
            Console.WriteLine("NO");
        }
        else
        {
            Console.WriteLine(count);
            Console.WriteLine(string.Join(" ", p));
        }              
    }
}

Смотрите также: