Насколько можно оптимизировать этот программный код? - C#
Формулировка задачи:
static void Main(string[] args)
{
int[] massiv1 = new int[10];
Random rand = new Random();
int j;
int s = 0;
for (int i = 0; i < 10; i++)
{
j = rand.Next(-10, 10);
massiv1[i] = j;
if(massiv1[i] > 0)
s = s + 1;
Console.WriteLine("" + massiv1[i]);
Console.Write("\n");
}
Console.WriteLine("s=" + s);
int[] massiv2 = new int[s];
int k = 0;
for (int i = 0; i < 10; i++)
{
if (massiv1[i] > 0)
{
massiv2[k] = massiv1[i];
k++;
}
}
for (k = 0; k < s; k++)
{
Console.WriteLine("l=" + massiv2[k]);
}
Console.ReadKey();
}Решение задачи: «Насколько можно оптимизировать этот программный код?»
textual
Листинг программы
using System;
using System.Linq;
namespace ConsoleApplication11
{
class Program
{
static void print(int[] arr)
{
string str = "[";
for (int i = 0; i < arr.Length; i++)
{
if(i != arr.Length -1)
str += arr[i]+",";
else str += arr[i];
}
str += "]";
Console.Write("{0} ", str);
Console.WriteLine();
}
static void Main(string[] args)
{
int[] massiv1 = new int[10];
Random rand = new Random();
int j = 0;
int s = 0;
foreach (int a in massiv1)
{
massiv1[j++] = rand.Next(-10, 10);
}
s = massiv1.Where(x=> x > 0).Count();
int[] massiv2 = new int[s];
var k = massiv1.Where(x => x > 0);
j = 0;
foreach(int a in k)
massiv2[j++] = (int)a;
Console.WriteLine("Массив 1: ");
print(massiv1);
Console.WriteLine("s = {0}",s);
Console.WriteLine("Массив 2:");
print(massiv2);
Console.ReadKey();
}
}
}