Построить вектор(одномерные массивы) - C#
Формулировка задачи:
Дано: n N; x,y . Построить вектор z, содержащий сначала положительные координаты вектора x,а затем положительные координаты вектора y.
Не очень понимаю,как объединить положительные координаты векторов в один вектор z.
никак не получается
Console.Write("enter n=");
int n = int.Parse(Console.ReadLine());
double[] x = new double[n];
Random r = new Random();
for(int i=0;i<x.Length;i++)
{
x[i] = r.Next(-100, 100);
Console.Write("||" + x[i]);
}
Console.WriteLine("");
double[] y= new double[n];
for (int i = 0; i < y.Length; i++)
{
y[i] = r.Next(-100,100);
Console.Write("||" + y[i]);
}
Console.WriteLine("");
int count = 0;
int counter = 0;
for (int i = 0; i < n; i++)
{
if (x[i] >= 0)
counter++;
if (y[i] >= 0)
count++;
}
double[] z = new double[counter + count];
for(int i=0;i<z.Length;i++)
{
if (x[i] >= 0)
z[i] = x[i];
Console.Write("||" + z[i]);
if (y[i] >= 0)
z[i] = y[i];
Console.Write("||" + z[i]);
}Решение задачи: «Построить вектор(одномерные массивы)»
textual
Листинг программы
using System;
using System.Linq;
class Program
{
public static void Main()
{
Random rnd = new Random();
int n = Int32.Parse(Console.ReadLine());
double[] x = Enumerable.Repeat(rnd, n).Select(r => r.NextDouble() * 200.0 - 100.0).ToArray();
double[] y = Enumerable.Repeat(rnd, n).Select(r => r.NextDouble() * 200.0 - 100.0).ToArray();
double[] z = x.Where(i => i >= 0.0).Concat(y.Where(i => i >= 0.0)).ToArray();
foreach (double[] arr in new double[][] { x, y, z })
{
Console.WriteLine(String.Join(", ", arr));
}
}
}