2016-11-11 1 views
0

Wenn ich Eingabe (zum Beispiel x = 100 und y = 7) der Ausgang zeigt alle Multiple bis 105 und nicht bis 98 wie es sein sollte.Schleife für über die Bedingung

+1

Sowohl "main" als auch "multiple" geben "int" zurück, aber Sie geben keinen Wert zurück. Achten Sie darauf, dass Sie auf Compiler-Warnungen achten. Wenn du GCC verwendest, verwende immer mindestens 'gcc -Wall -Werror'. –

+0

PS Ich habe einen Fehler gemacht auch deklariert int ich und nicht mit –

Antwort

1

Die Schleife nach oben jedoch bis 98. druckt, multiple erklärt int eine Rückkehr aber tatsächlich eine return Aussage nicht hat, so ist der Rückgabewert nicht spezifiziert (und in der Praxis werden Sie einige beliebigen Wert von A vorherige Berechnung). Dann drucken Sie diesen "Müll" Rückgabewert und in Ihrem Fall ist es zufällig 105.

Wenn Sie nicht wollen multiple einen Wert zurückgeben, dann deklarieren Sie nicht, um einen Wert zurückzugeben, und nicht drucken der Wert, den es zurückgibt.

+0

Vielleicht könnte es eine dumme Frage sein, aber wie ich eine "Müll" zurückgeben? –

+0

@FulvioDenza 'printf ("% d ", mehrfach (x, y));' gibt den Rückgabewert von 'multiple (x, y)' aus. Hier bedeutet "Müll" nur Daten, die nichts bedeuten. – immibis

+0

Vielen Dank @immibis –

Verwandte Themen