Code:
import AlgoTools.IO;
public class CharSumme {
public static void main(String[] args) {
int ergebniss = 0;
int ergebniss1 = 0;
String zeichen = IO.readString("Geben Sie einen Text ein: ");
for ( int pos = zeichen.length() - 1; pos >= 0 ; pos = pos-1 )
{ int zahl = (int) zeichen.charAt(pos);
ergebniss = ergebniss + zahl;
while ( ergebniss > 0) {
if (zahl >= 48 && zahl <= 57) {
ergebniss1 = ergebniss1 + (zahl-48);
ergebniss = ergebniss1 / 10;
} else {
ergebniss1 = ergebniss1 + (ergebniss % 10);
ergebniss = ergebniss / 10;
}
}
}
IO.print(ergebniss1);
}
}
Der Code soll Char einlesen , umwandeln in Integer & dann die Quersumme berechnen.
Mit Buchstaben funktioniert dieser Code 1A , jedoch bei Zahlen habe ich ein Problem, dort sollen nicht die ASCII sondern die wirklichen Zahlen benutzt werden, also bei 1 nicht 49 sondern 1.
48 - 57 sind die ASCII Dezimal Zahlen von 0 - 9. Die gehen in dem Code einzeln eingegeben auch .. es geht auch aa12 --> ergebniss ist 35 , also richtig..
Jedoch wenn ich z.B. 55 eingebe kommt -2147483646 als ergebniss raus, erkennt jemand einen Fehler, ich stehe stark auf dem Schlauch :-D
Ich vermute das der Fehler in dem oberen Teil der If Abfrage zwischen 48 & 57 oder irgendwo ein Fehler in den Schleifen? , das Else ist ja nur für buchstaben und funktioniert einwandfrei.
PS : IO sind Tools & dienen nur der vereinfachung für mich. Sind einfach z.B. zum enlesen und ausgeben da .