W pętli, w której sumujesz liczby z pierwszej tablicy i wpisujesz do drugiej ustaw inkrementacje licznika nie o jeden, a o dwa lub pozostaw tak jak jest (licznik od 0
do 4
), ale mnóż go przez dwa i dodaj 1
by uzyskać poprawne indeksy dla pierwszej 10-elementowej tablicy; Albo zwiększaj zmienną pomocniczą o 2
, nie o 1
;
Nie napiszę Ci tego w C# bo go nie znam, ale w pascalu wyglądałoby to tak:
var
arrBig: array [0 .. 9] of Integer;
arrSmall: array [0 .. 4] of Integer;
I: Integer;
begin
for I := 0 to 9 do
begin
Write('Podaj liczne nr ', I, ': ');
ReadLn(arrBig[I]);
end;
// I = 0 | I * 2 = 0 | I * 2 + 1 = 1 | indeksy (0, 1)
// I = 1 | I * 2 = 2 | I * 2 + 1 = 3 | indeksy (2, 3)
// I = 2 | I * 2 = 4 | I * 2 + 1 = 5 | indeksy (4, 5)
// I = 3 | I * 2 = 6 | I * 2 + 1 = 7 | indeksy (6, 7)
// I = 4 | I * 2 = 8 | I * 2 + 1 = 9 | indeksy (8, 9)
for I := 0 to 4 do
arrSmall[I] := arrBig[I * 2] + arrBig[I * 2 + 1];
for I := 0 to 4 do
WriteLn('arrSmall[', I, ']: ', arrSmall[I]);
ReadLn;
end.
Wynik działania kodu:
Podaj liczne nr 0: 0
Podaj liczne nr 1: 1
Podaj liczne nr 2: 2
Podaj liczne nr 3: 3
Podaj liczne nr 4: 4
Podaj liczne nr 5: 5
Podaj liczne nr 6: 6
Podaj liczne nr 7: 7
Podaj liczne nr 8: 8
Podaj liczne nr 9: 9
arrSmall[0]: 1
arrSmall[1]: 5
arrSmall[2]: 9
arrSmall[3]: 13
arrSmall[4]: 17
Jak widać nie potrzeba do tego zmiennych pomocniczych - wystarczy pomnożyć licznik pętli razy 2
(tej drugiej - od 0
do 4
) dla pierwszego elementu większej tablicy, oraz pomnożyć przez 2
licznik pętli i dodać 1
by uzyskać liczbę z kolejnej komórki z dużej tablicy;
To samo zrób u siebie, tyle że w C#.