2012-04-02 5 views
1

Ich versuche, auf dem Bildschirm dieses, da eine beliebige Anzahl wie 12 zu drucken:Was für Schleife in dieser fehlt

0+12 
1+11 
2+10 
3+9 
4+8 
5+7 
6+6 equal! 
7+5 
8+4 
9+3 
10+2 
11+1 
12+0 

Und dass ich den folgenden Code schreiben:

#include<stdio.h> 

int main (void) 
{ 
    int number, increment; 
    scanf("%d", &number); 

    for (increment = 0; increment <= number; increment++) 
    { 
     if ((increment >= 0) && (increment != number)) printf("%d+%d\n", increment, number); 
     else if (increment == number) printf("%d+%d equal\n", increment, number); 
     else if (number < increment) printf("%d+%d\n", increment, number); 
     number--; 
    } 

    return 0; 
} 

Und Die Ausgabe meines Codes lautet:

0+12 
1+11 
2+10 
3+9 
4+8 
5+7 
6+6 equal 
// missing part! 

Und nichts mehr .... Was muss ich in der Schleife beheben, um das fehlende Teil zu zeigen?

Danke.

+0

Setzen Sie diesen Code in einen Debugger, lernen Sie, wie man durch es geht, und Sie werden das Problem in weniger als einer Minute sehen. Die Verwendung eines Debuggers ist NICHT "optional" in der Programmierung. – abelenky

Antwort

3

Warum muss man alles so kompliziert machen?

+0

Vielen Dank, das funktioniert gut. – ignaces

4

Sie überprüfen increment <= number und stetig abnehmende number. Sie verlieren im Wesentlichen die 12 vollständig. Sie können dies stattdessen tun:

for (increment = number; increment >= 0; increment--) 
{ 
    ... 
} 

Die Schleife Körper muss natürlich entsprechend geändert werden.

+0

Ich muss alle Variablen in den ifs und else ifs ändern? – ignaces

+1

Ja. 'increment' (was wir wahrscheinlich etwas passender umbenennen sollten) wird jetzt von 12 auf 0 herunter zählen. –

+0

Sorry ist ein N00b in C, aber immer noch nicht fangen, was ich in den Variablen ändern sollte. – ignaces

0

Ich denke es ist, weil Sie Zahl verringern und es eine Variable Schleifensteuerung verwenden, was bedeutet, nachdem Sie hinzufügen zu erhöhen und nehmen von Nummer wird es nur 6-mal Schleife nicht die 12 Sie denken, es wird.