# variable Arrays füllen.



## bEKAR (29. November 2003)

Hi ich hab ein parr Problem bin noch Anfänger und komm seid einem Tag nicht auf die Lösung hoffe hier kann mir jemand helfen.

ich möchte das jemand einen Wert eingeben kann dieser Wert definiert wie oft er einen zweiten wert eingeben will. Z.B zuerst "2" dann wird es 2 Schleifen geben in dieser Schleife wird eine Zahl eingegeben und die Zahl soll er speichern. Bei jedem Schleifen durchlauf soll die Zahl gespeichert werden und am Ende sollen alle Zahlen addiert werden und durch die Schleifenanzahl dividiert. 

Hab fast alles hinbekommen ausser das er sie Zahlen individuel Speichert ich wolte dafuer ein 2 dimensionales Array benutzen wo das  Zweite Array die schleifen länge und das erste Array den Schleifenwert bedeutet aber das muss dann wie gesagt noch _mitsichselber_ addiert werden  aber das muss alles flexibel sein.

Hoffe jemand kann mir helfen.  Bitte nicht einfach nur den Code hinbolzen noch ein bisschen was erklären wäre sehr nett damit ich vieleich auch verstehe ich hab mich da fast bescheuert gedacht mit diesen flexiblen mehrdimensionalen Arrays

meine Code.



```
/*Notendurchschnitt
Zuerst wird gefragt um wieviel noten es sich handelt dann werd die Noten
addiert und durch die Anzahl dividiert.
*/

import java.io.*;
import java.util.*;

public class noten
{
	public static void main(String args[])
	
	throws IOException
	{
		int anzahl;
		BufferedReader eingabe = new BufferedReader(new     InputStreamReader(System.in));
		BufferedReader eingabe1 = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Bitte die Anzahl der Noten eingeben");
		anzahl = Integer.parseInt(eingabe.readLine());
		
		//for (int i=0; i<anzahl; ++i)
		//double[] anzahlnoten = new double[anzahl];
		int i = 0;
		while (i<anzahl)
		{
			double mzahl;
			String meingabe;
			System.out.println("Hier bitte die "+(i+1)+"te Note eingeben");
			meingabe = eingabe1.readLine();
			mzahl=Double.valueOf(meingabe).doubleValue();
    		{
    		/*Ab hier habe ich absolut keine Ahnung mehr.

                 int a = 0 a++;
    		double[] array = new double[a];
    		Arrays.fill(array,mzahl);
    		System.out.print('\n');
       		for(a<array.length;a++)
     		*/System.out.print(array[a]);
			}
		i++;
		}

	}
}
```

Danke nochmal fuer eure Hilfe.

Gruss bEKAR


----------



## NetPerformance (29. November 2003)

/*Notendurchschnitt
Zuerst wird gefragt um wieviel noten es sich handelt. Dann werd die Notenaddiert und durch die Anzahl dividiert.
*/


```
import java.io.*;

public class Test
{
	public static void main(String args[])throws IOException
	{
		int anzahl;
		double noten;
		double summe = 0;
		
		BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));

		System.out.print("Bitte die Anzahl der Noten eingeben : ");
		anzahl = Integer.parseInt(eingabe.readLine());
		     
       	double temp [] = new double [anzahl+1]; // Array um die Werte zu speichern.
        
        for (int i=0; i<=anzahl -1; i++)
        {
        	System.out.println("Noten "+(i+1)+" : ");
        	temp[i] = Integer.parseInt(eingabe.readLine());
        }
        
		for (int i=0; i<=anzahl -1; i++)
		{
			summe = summe + temp[i]+temp[i+1];	
			i++;		
		}
		
		double erg = summe / anzahl;
		
		System.out.println("Ergebnis der Addition : "+summe); 
		System.out.println("Notendurchschnitt entspricht : "+erg); 
	}
}
```

-----------------------------

Gruß
Aaron


----------



## bEKAR (29. November 2003)

dankeschön aber jetzt hab ich den code und es immer noch nicht verstanden kann mir bitte jemand diese schritte erklären ?

Aus dem Codeende:

```
for (int i=0; i<=anzahl -1; i++)
{
summe = summe + temp[i]+temp[i+1];
i++;
}
```

Danke fuer Eure Hilfe.

Gruss bEKAR


----------



## NetPerformance (29. November 2003)

```
for (int i=0; i<=anzahl -1; i++)
{
summe = summe + temp[i]+temp[i+1];
i++;
}
```

Ein Array-Index  fängt immer bei 0 an.
Aus diesem Grund fängt die Schleife bei 0 an.
Im ersten Schleifendurchlauf ist i=0.
temp ist unser Array und mit 
	
	
	



```
temp[i] = 0
```
 wird die erste Stelle von dem Array angesprochen.

```
temp[0]
```
 beinhaltet daher die erste Note.

```
temp[i+1]
```
 ist die nächste Arraystelle und bekommt die darauf folgende Note zugewiesen. 

i++ erkläre ich Dir am besten anhald der Skizze.
klick 


Gruß
Aaron


----------



## bEKAR (29. November 2003)

Danke hat mich sehr geholfen


----------

