Quersumme berechnen

  • Themenstarter Themenstarter sx810jc
  • Beginndatum Beginndatum
S

sx810jc

Gast
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!
Java:
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);
		}

	}

}
 
Moin

Java:
for (int i = 0; i < 1; i++)
{
    System.out.println("Zahl " + summe[i]);
    zahl = zahl + summe[i];
    System.out.println("Die Quersumme lautet " + zahl);
}

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
 
das zeichen 1 sollte eigentlich nicht da sein war nur eben wegen testzwecken es sollte heißen i<summe.lenght
 
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?
 
Klassen groß schreiben, Variablen klein schreiben. Und ordentlich mit Zahlen rechnen wie sich das gehört:

Java:
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);
    }
 
}
 

Neue Themen


Zurück
Oben