C Programm mit Return?
Hallo,
das Programm soll erst stoppen wenn die Zahl c > 20 ist jedoch wenn ich eine 1 eingeben wird diese euch zurückgegeben als e = 1 und wenn ich dann zb die 2 eingebe sollte eigentlich e = 3 raus kommen, es kommt aber e = 2 raus. Wieso werden die Zahlen nicht addiert. Wie müsste man es dann machen?
Als Abbrechbedingung schreibt man dann return 0 wenn quasi c > 20 ist oder wie macht man das?
3 Antworten
1) Definiere jede Variable, bevor du sie verwendest.
Beispiel:
int ergebnis = 0;
// ...
ergebnis = ergebnis + zahl;
2) Mit jedem Aufruf von rechnen wird die Variable e neu angelegt. Wenn du auf den Wert aus dem vorherigen Aufruf zurückgreifen möchtest, musst du die Variable global (außerhalb der Funktion) anlegen.
// globale Variable e (unsauber, aber zum testen reicht es)
int e;
int rechnen()
{
int a;
printf( // wie im original );
scanf( // wie im original );
e = e + a;
return e;
}
int ausgeben(int c)
{
printf("%i\n", c);
}
int main()
{
e = 0;
while(rechnen() < 20)
;
ausgeben(e);
}
Ich kann zwar kein C, aber wenn ich mir den Code anschaue, faellt mir auf, dass bei Leine 74 "e = %i\n steht. Wird dann nicht einfach die Eingabe rausgegeben?
Sag mir falls ich falsch liege
Aber 2 ist ja nicht ueber 20, dann wird natuerlich auch 2 ausgegeben
ja das soll es ja solange machen bis die zahl größer 20 ist