PDA

View Full Version : [FRAGE] - Bruch kürzen


Subway
21-05-2004, 01:56
Hallo!

Aufgabe ist Zähler(z3) und Nenner(n1) einesBruchs zu kürzen. Warum geht das nur mit dem 2.Code. Wieso kann ich im 1 die Schleife nicht wieder vom Anfang an durchlaufen lassen, wenn die if-Bedingung erfüllt wurde?
Ist mir schon klar dass der 2 so oder so besser ist. Trotzdem würde ich das gerne wissen.
thx


for (int i=2; i<=n1; i++) {
if(z3%i==0 && n1%i==0) {
z3/=i;
n1/=i;
i=2;}}


for (int i=n1; i>1; i--) {
if(z3%i==0 && n1%i==0) {
z3/=i;
n1/=i;}}

Bruno
21-05-2004, 02:37
ähm... ich habs mal ausprobiert und bei mir liefern beide varianten immer das selbe ergebnis... sag mal ein zahlenpaar, bei dem dir was anderes rauskommt.

jeuneS2
21-05-2004, 02:42
Weil das i++ nach dem Schleifenkörper ausgeführt wird; im Durchlauf nach dem Zutreffen der if-Bedingung ist also nicht i==2 (wie im allerersten Durchlauf) sondern i==3.

Subway
21-05-2004, 02:54
ähm... ich habs mal ausprobiert und bei mir liefern beide varianten immer das selbe ergebnis... sag mal ein zahlenpaar, bei dem dir was anderes rauskommt.
zB bei 48/32; beim 1. Code kommt 6/4 beim 2. 3/2

Weil das i++ nach dem Schleifenkörper ausgeführt wird; im Durchlauf nach dem Zutreffen der if-Bedingung ist also nicht i==2 (wie im allerersten Durchlauf) sondern i==3..:D Ahh.. jetzt ist alles klar!
Danke dir