Kann mir einer helfen meinen logischen Fehler zu finden (geht um das phytagoras triplett)?

... komplette Frage anzeigen

2 Antworten

Hallo,

dein Problem ist wahrscheinlich das er immer alle drei Werte um 1 erhöht.

Beim 1. Durchlauf ist

a=0; b=1; c=2;

Beim 2. 

a=1; b=2; c=3;

Beim 3. 

a=2; b=3; c=4;

Beim 4. 

a=3; b=4; c=5;



Höchstwahrscheinlich kann die Bedingung a^2 + b^2 = c^2 nicht stimmen , wenn b um einen höher ist als a und c um 2 höher als a. Deshalb findet er nichts.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Alinchen24
01.03.2016, 12:13

dankeschön :)

1
Kommentar von Suboptimierer
01.03.2016, 12:52

3² + 4² = 5²

Hier müsste eine Ausgabe erfolgen.

____________________

Dass es sich um eine Endlosschleife handelt (und genauso gut dort while(1) stehen könnte, wurde bereits erwähnt.

0

Ich sehe den Fehler nicht, aber versuch mal, die Schleifen und die Quadratur umzuprogrammieren:

for(int i=1;i<1000;i++)
  if( i*i + (i+1)*(i+1) == (i+2)*(i+2) )
    printf("Triplett: a=%i, b=%i, c=%i", i, i+1, i+2);
Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?