# Quersumme berechnen



## sx810jc (9. Feb 2012)

Hallo,

ich wollte die Quersumme für Zahlen berechnen mithilfe eines Arrays. Aber ich weiß nicht wo mein Fehler liegt! Und zwar bekomme ich immer Ausgaben mit Zahlen von 49 oder höher. 
Vielen Dank!

```
import java.util.Scanner;


public class summe {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int zahl = 0;
		System.out.println("Bitte geben Sie die Zahl ein");
		Scanner Eingabe = new Scanner(System.in);
		String Input = Eingabe.next();
		
		char [] summe = Input.toCharArray();
		
		for (int i = 0; i < 1; i++)
		{
			System.out.println("Zahl " + summe[i]);
			zahl = zahl + summe[i];
			System.out.println("Die Quersumme lautet " + zahl);
		}

	}

}
```


----------



## ARadauer (9. Feb 2012)

das zeichen '1' ist nicht 1

System.out.println((int)'1');


----------



## VfL_Freak (9. Feb 2012)

Moin



sx810jc hat gesagt.:


> ```
> for (int i = 0; i < 1; i++)
> {
> System.out.println("Zahl " + summe[i]);
> ...



in der mittleren Zeile summierst Du CHAR-Werte .... und die sind nun  mal größer!
'0' ist in HEX 0x30 (DEZ 48)
...
'9' ist in HEX 0x39 (DEZ 57)

Warum wandelst Du Deine Eingabe nicht direkt in einen Integer-Wert um, gibst ihn dann direkt mit println aus und summiert ihn auf einer int-Variable ???:L

Alternativ (aber sehr unschön) kannst Du natürlich auch von jedem Deiner chars 48 abziehen 

Gruß
Klaus


----------



## sx810jc (9. Feb 2012)

das zeichen 1 sollte eigentlich nicht da sein war nur eben wegen testzwecken es sollte heißen i<summe.lenght


----------



## VfL_Freak (9. Feb 2012)

Moin,



sx810jc hat gesagt.:


> das zeichen 1 sollte eigentlich nicht da sein war nur eben wegen testzwecken es sollte heißen i<summe.lenght



fein fein , ändert aber nix an unseren Beiträgen (es geht hier ja weniger um die Schleifevariable) 
Hast Du die denn gelesen ???:L

Gruß
Klaus


----------



## ARadauer (9. Feb 2012)

die schleife hab ich nicht gemeint..
du kannst zu deiner summer nicht '1' dazu zählen. Weil das ein char ist und das char '1' ist nicht 1 sondern 49

  zahl = zahl + summe_-'0'; geht das?_


----------



## VfL_Freak (9. Feb 2012)

Moin,



ARadauer hat gesagt.:


> zahl = zahl + summe_-'0'; geht das?
> _


_

Entweder dies, oder (wie oben beschrieben)
zahl = zahl + summe- 48;

Gruß
Klaus_


----------



## sx810jc (9. Feb 2012)

okay ich machs einfach mit -48 vielen dank für die schnellen antworten


----------



## Landei (9. Feb 2012)

Klassen groß schreiben, Variablen klein schreiben. Und ordentlich mit Zahlen rechnen wie sich das gehört:


```
import java.util.Scanner;
 
public class Summe {
 
    public static void main(String[] args) {
        System.out.println("Bitte geben Sie die Zahl ein");
        Scanner scanner = new Scanner(System.in);
        String eingabe = scanner.next();
        int zahl = Integer.parseInt(eingabe);
        
        int summe = 0;
        while(zahl > 0) {
            summe += zahl % 10;
            zahl /= 10;
        }         
        System.out.println("Die Quersumme lautet " + summe);
    }
 
}
```


----------

