# 2 Arrays abwechselnd verbinden



## newcommer28 (7. Feb 2017)

Hallo Zusammen, meine Aufgabe lautet:
Schreiben Sie ein Java-Programm, in welchem zwei Arrays a und b von int- Werten der Länge 10 deklariert und implementiert werden. Sie sollen mit den Werten 90, 41, 34, 43, 4, 9, 3, 6, 22, 55 und 8, 42, 5, 7, 25, 23, 21, 66, 19, 2 gefüllt werden. Dann soll ein drittes Array c der Länge 20 erzeugt werden. Dieses soll folgendermaßen gefüllt werden: 90, 8, 41, 42, ….. Es soll also abwechselnd die Werte der beiden bisherigen Arrays erhalten: a[0], b[0], a[1], b[1] u.s.w..
Benutzen Sie dazu eine Schleife.
Tipp: Sie können an dieser Stelle ganzzahlige Division gut gebrauchen!
Geben Sie mittels System.out.print(…) dann das Ergebnisarray c aus. Benutzen Sie hierzu eine weitere Schleife. Die einzelnen Zahlen sollen in der Ausgabe mittels Semikolon voneinander getrennt werden.

So einen kleinen Ansatz habe ich: 
ich weiss wie ich diese verbinden kann( int [] c= new int[a.length+b.length], weiss aber leider nicht wie es abwecheselnd gemacht werden soll.
Diese würde ich dann in for-Schleifen packen wie:
for(int i=0;i<(a.length+b.length);i++){
       for (int j=0;j<c_.length;j++){
          System.out.println(c[j]);
weiter komme ich leider nicht :/_


----------



## JCODA (7. Feb 2017)

Ich hätte das ohne ganzzahlige Division gelöst:
Mit 2*i bekommst du alle geraden Indizes 
Mit 2*i+1 alle ungeraden,
dann brauchst du nur noch mit einer Schleife von i=0 bis <10 durchlaufen und c jeweils zuweisen ...


----------



## newcommer28 (7. Feb 2017)

wäre das dann
for(i=0;i<10;i++{
System.out.println(c[2*i]+c[2*i+1])
}


----------



## JCODA (7. Feb 2017)

du greift immerhin schon mal auf die richten Indizes zu ja, aber du sollst ja jetzt die Inhalte von a und b in c reinschreiben. 
Das Ausgaben per System.out.println() ist erst der zweite Schritt, hierfür würde sich jedoch eine normale Schleife von 0 bis <20 anbieten ...


----------



## newcommer28 (7. Feb 2017)

schreibe ich denn inhalt von a und b nicht bei "int [] c= new int[a.length+b.length]" schon rein?


----------



## JCODA (8. Feb 2017)

nein, du holst dir ja nur die Längen von a und b, addierst sie, und erstellst ein neues Array mit Länge dieser Summe. 
du kannst ja per c[k] auf die Elemente zugreifen ... 
d.h. wenn du c[k] = a[p]; machst, dann schreibst du den Wert von a an der Stelle p nach c auf Stelle k...


----------



## newcommer28 (8. Feb 2017)

also wäre es dann:
for(i=0;i<10;i++){
c_=a[p];
}
for(i=0;i<20;i++){
System.out.println(c[2*i]+c[2*i+1])
}_


----------



## newcommer28 (8. Feb 2017)

c_=a[p];_


----------



## JCODA (8. Feb 2017)

lies nochmal die Aufgabenstellung. 
Und schreib dir mal auf, wohin welche Elemente kommen. 
Wenn dir es "allgemein" also in Formeln zu schwierig ist, dann versuch es mit Zahlen und expliziten Indizes. 
Java-Code bitte in Code-Tags posten, indem du *Einfügen ... Code ... Java* auswählst.


----------



## newcommer28 (8. Feb 2017)

ich weiss das es am ende so aussehen soll:

```
c[0]=a[0]
c[1]=b[0]
c[2]=a[1]
```
das ich c_,a[p],b[k] habe und diese dann in eine schleife packen muss
aber dieses abwecheslnd verwirrt mich total da ich irgendwie nicht dahinter komme wie ich wie ich c[0] den ersten wert von a zuweise und dann c[1] den ersten wert von b._


----------



## JCODA (8. Feb 2017)

Naja, kannst du jetzt die Zuweisung mit der Formel, die ich oben genannt habe in Verbindung bringen?
Vorallem wenn du das Array a und die Formel 2*i
sowie das Array b und die Formel 2*i+1 anschaust...


----------



## newcommer28 (9. Feb 2017)

```
for(int i=0;i<20;i++){
        c[i]=a[2*i]+b[2*i+1]
```


----------



## JCODA (9. Feb 2017)

Okay, also wo genau in der Aufgabe steht jetzt, dass hier zwei Werte von a und b addiert werden? 
Außerdem: wenn i tatsächlich bis "kleiner"20 läuft, also 19, dann ist 2*i 38, vielleicht sollte diese Schleife nur bis 10 laufen ... 


```
for(int i=0;i<10;i++){
     c[2*i]=a[i];     //jeder Eintrag von a wird an eine gerade Position in c geschrieben
     c[2*i+1]=b[i]; //jeder Eintrag von b wird an eine ungerade Position in c geschrieben
}
```


----------



## newcommer28 (9. Feb 2017)

ohhh okay jetzt versteh ich es (bischen spät)
danke dir


----------

