Cześć,
Mam dwie tablice n-elementowe i mam przekopiować wartości z tab1 do tab2, ale z przesunięciem o jedną pozycję.
Utknęłam na Array.Copy. Dobrze rozumiem, że kopiuję z tab1, od indeksu 0 do tablicy tab2, gdzie w tab2 będzie to ineks1? Na końcu powinnam określić ile elementów chcę skopiować, ale to użytkownik będzie je deklarował. Próbowałam z "rozmiar" i tab1.Length, ale Visual wyrzuca błąd -> System.ArgumentException: „Destination array was not long enough. Check the destination index, length, and the array's lower bounds. ”
Jak zadeklarować Array.Copy nie znając ilości elementów, które chce skopiować?
using System;
namespace Zadanie_4._4
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Podaj liczbę elementów tablicy: ");
int rozmiar = int.Parse(Console.ReadLine());
int[] tab1 = new int[rozmiar];
int[] tab2 = new int[tab1.Length];
for (int i = 0; i < tab1.Length; i++)
{
Console.WriteLine("Podaj wartość {0} elementu: ", i+1);
tab1[i]= int.Parse(Console.ReadLine());
}
for (int i=0; i< tab1.Length; i++)
{
if (tab1[i] > 0)
{
tab2[i] = tab1[i];
}
}
Console.Write("1. ");
for (int i =0; i< tab2.Length; i++)
{
Console.Write(tab2[i] + " ");
}
Array.Copy(tab1, 0, tab2, 1, rozmiar);
for (int i=0; i< tab1.Length; i++)
{
Console.WriteLine(tab2[i]);
}
Console.Write("2. ");
foreach (int x in tab2)
Console.WriteLine(x);
Console.ReadKey();
Dziękuję :)