# Array Summe



## Carlos Valderra (16. Jun 2012)

Es soll die Summe der eingelesenen Zahlen ausgegeben werden.


```
import IOulm.Urc;

public class ReadArray{
  public static void main(String[] args) { 
      final int N = 10; // Dimension
      int anzahl, i = 0;
	  int Summe = 0;

      int [] v = new int[N];

       while ( ( i < N ) && Urc.readInt() ) {
          v[i] = Urc.getInt();
          i = i + 1;
       }
       anzahl = i; // belegt von 0 bis anzahl-1!!!

       for (int k = 0 ; k < anzahl; k++ ) {
          Summe+=anzahl[k];
		  System.out.println("v[" + k + "] = " + v[k]);
		  System.out.println(Summe);
       }
  } 
}
```

Folgende Fehlermeldung:



> ReadArray.java:18: array required, but int found
> Summe+=anzahl[k];


----------



## Final_Striker (16. Jun 2012)

```
anzahl
```
ist kein Array sondern ein int.


----------



## Carlos Valderra (16. Jun 2012)

Hmm... hat das was damit zu tun, dass da 
	
	
	
	





```
int [] anzahl, i = 0;
```
 stehen müsste?


----------



## Gast2 (16. Jun 2012)

Dann würde auch i vom Typ 
	
	
	
	





```
int[]
```
 sein, das willst du ja auch nich. Deklarier die doch einzeln:

```
int[] array = ...
int i = 0;
```


----------



## x22 (18. Jun 2012)

Von was willst du eine Summe bilden wenn du nichtmal ein Array deklariert bzw initialisiert hast?..

Deklaration:


```
int[] einArray= new int[5]{...};
```


----------



## x22 (19. Jun 2012)

noch aktuell?

mein vorheriger post muss entweder mit Zahl in [] stehen, wenn ja dann ohne {} oder andersrum, zur Info.


----------



## FerFemNemBem (19. Jun 2012)

Mahlzeit,

weiss nicht, ob es performancemaessig viel bringt. Aber bei Dir ermittelt er bei jedem Schleifendurchlauf die Arraygroesse, zaehlt "i" um 1 hoch und muss sich auch noch den entsprechenden Index aus dem Array holen. Ich wuerde hier mit dem foreach-Konstrukt arbeiten. Finde ich persoenlich auch etwas besser lesbar, aber das ist sicher Ansichtssache.

In etwa so:


```
int summe = 0;
int[] test= new int[]{1,2,3,4,5};
        
for(int i : test)
{
    summe += i;
}
```

Gruss, FFNB.

// Oh... nun hast Du (x22) Deinen Loesungsvorschlag wegeditiert... Da kann ich mein Posting auch loeschen.


----------



## x22 (20. Jun 2012)

Ja, hab gemerkt dass der nicht so ganz zum Thema gepasst hat, bzw. das im Code ja schon gegeben war, hab ich wohl zu schlampig gelesen.. :rtfm:


----------



## Carlos Valderra (25. Jun 2012)

Danke für die Hilfe, hier übrigens die Lösung:


```
import IOulm.Urc;

public class MyReadArray{
  public static void main(String[] args) { 
      final int N = 10; // Dimension
      int anzahl, i = 0, summe = 0, max;

      int [] v = new int[N];

       while ( ( i < N ) && Urc.readInt() ) {
          v[i] = Urc.getInt();
          i = i + 1;
       }
       anzahl = i; // belegt von 0 bis anzahl-1!!!

       //Aufsummieren
       for (int k = 0; k < anzahl; k++ ) {
          summe = summe + v[k];
       }
       System.out.println("Summe: " + summe);

       //Maximum
       if (anzahl > 0) {
          max = v[0];
          for (int j = 1; j < anzahl; j++) {
             if (v[j] > max) {
	        max = v[j];
	     }
	  }
	  System.out.println("Maximum: " + max);
       }
       
  } 
}
```


----------

