hey ich komm einfach nicht auf die lösung...
folgende aufgabe
int ersetzeZiffer(int zahl, int stelle, int wert) ; ersetzt die Ziffer der übergebenen Zahl an der Stelle stelle durch den übergebenen wert und liefert die neue Zahl; die Stellen werden dabei von rechts nach links angegeben und beginnen bei 0; Sie können davon ausgehen, dass gilt: 0 <= stelle < getAnzahlZiffern(zahl) und 0 <= wert <= 9; Bsp.: ersetzeZiffer(24135, 3, 7) -> 27135 bzw. ersetzeZiffer(- 12345, 0, 6) -> -12346
das habe ich bis jetzt aber meine funktion ersetzeZiffer ist falsch...da er erstmal wegen dem modulo die zahl verkehrt rum ausgibt und zudem muss die funktion noch die ziffer ersetzen die ich auswähle...dafür habe ich mir folgendes überlegt
ich komm einfach nicht auf das richtige ergebnis....hab schon versucht das als string einzulesen aber dann setzt er mit die ziffer immer an den anfang usw...
wäre echt top wenn mir das jemand erklären könnte...bin gerade am stoff wiederholen und komm einfach bei der aufgabe nciht weiter...
folgende aufgabe
int ersetzeZiffer(int zahl, int stelle, int wert) ; ersetzt die Ziffer der übergebenen Zahl an der Stelle stelle durch den übergebenen wert und liefert die neue Zahl; die Stellen werden dabei von rechts nach links angegeben und beginnen bei 0; Sie können davon ausgehen, dass gilt: 0 <= stelle < getAnzahlZiffern(zahl) und 0 <= wert <= 9; Bsp.: ersetzeZiffer(24135, 3, 7) -> 27135 bzw. ersetzeZiffer(- 12345, 0, 6) -> -12346
Java:
public class Ue15_aufgabe2_4 {
/**
* @param args
*/
public static void main(String[] args) {
int zahl = IO.readInt("Bitte geben Sie eine Zahl ein: ");
int stelle = IO
.readInt("Bitte geben Sie die Stelle an die ersetzt werden soll: ");
int ziffer = IO.readInt("Bitte geben Sie den 0<=wert<10 an: ");
IO.print(ersetzeZiffer(zahl, stelle, ziffer));
}
static int ersetzeZiffer(int zahl, int stelle, int ziffer) {
int wert = 0;
while (zahl > 0) {
wert = zahl % 10;
zahl = zahl / 10;
IO.print(wert);
}
return wert;
}
}
das habe ich bis jetzt aber meine funktion ersetzeZiffer ist falsch...da er erstmal wegen dem modulo die zahl verkehrt rum ausgibt und zudem muss die funktion noch die ziffer ersetzen die ich auswähle...dafür habe ich mir folgendes überlegt
Java:
int wert2 = 0;
while(stelle >0){
wert2 = zahl%10;
zahl = zahl/10;
stelle--;
}IO.print(ziffer);
ich komm einfach nicht auf das richtige ergebnis....hab schon versucht das als string einzulesen aber dann setzt er mit die ziffer immer an den anfang usw...
wäre echt top wenn mir das jemand erklären könnte...bin gerade am stoff wiederholen und komm einfach bei der aufgabe nciht weiter...