Задан массив из 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));
}
}
}