# Array: Summe aller geraden und ungeraden Zahlen ermitteln



## Lestas89 (23. Sep 2015)

Ich möchte in einem Array der Länge 100 die Summe aller geraden und ungeraden Zahlen ermitteln.

Meine Idee bisher: Es mit einer if Bedingung zu versuchen, aber ich komme nicht weiter:

```
public class Programm2{
   public static void main(String[]args){
  
     int [] feld = new int [100];
     for(int i = 0; i < feld.length; i++){
       feld[i] = (int) (Math.random()*9)+1;
     }
    
     for(int i = 0; i < feld.length; i++){
     if(feld[i] % 2 == 0)
      
    
     }
   }
}
```

Wie kann ich das bewerkstelligen?


----------



## Tarrew (23. Sep 2015)

Du brauchst zwei ints für die Summe der geraden und der ungeraden Zahlen.

Dann: Falls feld_%2== 0 ->  summeGerade += feld am Index i
Sonst: summeUngerade += feld am Index i_


----------



## Lestas89 (23. Sep 2015)

Danke für deine Hilfe. Aber wie ermittel ich die Summe der ungeraden bzw. geraden Zahlen denn genau? Darauf komm ich noch nicht.


----------



## Tarrew (23. Sep 2015)

```
public static void main(String[] args) {
        int sumEven = 0;
        int sumOdd = 0;
        int[] feld = new int[100];
        for (int i = 0; i < feld.length; i++) {
            feld[i] = (int) (Math.random() * 9) + 1;
        }

        for (int i = 0; i < feld.length; i++) {
            if (feld[i] % 2 == 0) {
                sumEven += feld[i];
            } else {
                sumOdd += feld[i];
            }

        }
        System.out.println("Summe ungerader Zahlen:\t"+ sumOdd +"\nSumme gerader Zahlen:\t" + sumEven);
    }
```

Naja du brauchst ja nur einen Zwischenspeicher. Du durchläufst das Array und hast einen Zähler für die Summe der ungeraden und geraden Zahlen. 

Falls eine Zahl ungerade ist addierst du sie also zu der Summe der ungeraden Zahlen und andersrum genauso.


----------



## Lestas89 (23. Sep 2015)

Du warst nun schneller als ich. Ist mein Ansatz bisher richtig?

```
public class Programm2{
   public static void main(String[]args){

     int ungerade;
     int sumgerade = 0;
     int [] feld = new int [100];
     for(int i = 0; i < feld.length; i++){
       feld[i] = (int) (Math.random()*9)+1;
     }  
    
     for(int i = 0; i < feld.length; i++){
       if(feld[i] % 2 == 0){
         for(int gerade = 0; gerade <feld.length;gerade++){
         sumgerade+= (feld[gerade]%2);
       }  
      
       }
      
      
     }  
       System.out.println(sumgerade);
   }
}
```


----------



## Tarrew (23. Sep 2015)

Wozu soll die 2. for-s Schleife dienen?

Du brauchst nur eine for-Schleife mit der du das Array durchläufst und eine if-Abfrage zum richtigen aufaddieren.


----------



## Lestas89 (23. Sep 2015)

Stimmt, das ist sehr umständlich. Danke für deinen Hinweis.


----------



## Lestas89 (23. Sep 2015)

Ich hab das nun auch so gemacht, allerdings ist die Summe der Geraden und Ungeraden Zahlen falsch wenn ich das nachzähle. Hab ich irgendwo ein Fehler gemacht?

```
public class Programm2{
   public static void main(String[]args){
     int summegerade = 0;
     int summeungerade = 0;
     int [] feld = new int [5];
     for(int i = 0; i < feld.length; i++){
       feld[i] = (int) (Math.random()*9)+1;
       System.out.print(feld[i]);
     }
    
     for(int i = 0; i < feld.length; i++){
       if(i % 2 == 0){
       summegerade += feld[i];
       }else{
       summeungerade += feld[i];
       }
     }
     System.out.println();
     System.out.println();
     System.out.println("Summe aller gerader Zahlen:" + summegerade + ".\nSumme aller ungerader Zahlen"+ summeungerade +".");
   }
}
```


----------



## MWin123 (23. Sep 2015)

Dein Fehler: `if(i % 2 == 0)`


----------



## Lestas89 (23. Sep 2015)

Stimmt. Danke MWin123.


----------

