Zahlen addieren durch Funktion
-
Du machst überhaupt keine Rechnung. Deine Funktion summe() müsste eigentlich 2 Paremter bekommen : int a und int b also : summe( int a, int b ) denn nur so kann sie wissen, aus welchen 2 Zahlen sie die Summe bilden soll. Aussehen würde das dann so :
int summe( int a, int b ) { return ( a+b ); } int main() { // Zahlen einlesen printf( " Summe ist : %d \n", summe( zahl1, zahl2 ) ); return 0; }
-
Hier mal ein Link:
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/schau mal bei dir wie es da aussieht.
Die anderen Sachen wurden ja schon angesprochen.
void summe() { printf("\nDas Ergebnis lautet: "%i", zahl1 + "%i", zahl2"); // siehe Beitrag vorher } void main() // wieso void ??? { int zahl1; int zahl2; printf("\nBitte erste Zahl eingeben: "); scanf("%i", zahl1); // schau in den Link printf("\nBitte zweite Zahl eingeben: "); scanf("%i", zahl2); // auch Link summe(); getchar(); return 0; }
-
Schau mehr her, so sollte es funktionieren:
#include <stdio.h> int zahl1; int zahl2; void summe() { printf("\nDas Ergebnis lautet: %i", zahl1 + zahl2); } int main() { printf("\nBitte erste Zahl eingeben: "); scanf("%i", &zahl1); printf("\nBitte zweite Zahl eingeben: "); scanf("%i", &zahl2); summe(); getchar(); return 0; }
Gruß Chris
-
Funktionieren wahrscheinlich ja - aber warum globale Variablen, wenn es einfach anders geht?
-
Ich wollte so nahe an seinem Originalcode bleiben wie es geht. Du hast aber Recht, eine Summenfunktion mit Argumenten wäre hier als Lösung sauberer gewesen.
EDIT: hier noch mal die saubere Lösung...
#include <stdio.h> void summe(int zahl1, int zahl2) { printf("\nDas Ergebnis lautet: %i", zahl1 + zahl2); } int main() { int zahl1, zahl2; printf("\nBitte erste Zahl eingeben: "); scanf("%i", &zahl1); printf("\nBitte zweite Zahl eingeben: "); scanf("%i", &zahl2); summe(zahl1, zahl2); getchar(); return 0; }
-
cfoobar schrieb:
Ich wollte so nahe an seinem Originalcode bleiben wie es geht. Du hast aber Recht, eine Summenfunktion mit Argumenten wäre hier als Lösung sauberer gewesen.
EDIT: hier noch mal die saubere Lösung...
Sauber? Nö!
Ein/Ausgabe und Funktionen trennen, also int summe(int a, int b) mit returnvalue wär' angesagt.
-
Ok ok, das wär dann schon klinisch sauber...
EDIT:...und dann könnte man noch die Eingaben prüfen und sichere Varianten von printf etc. verwenden wie vsnprintf_s und so weiter und so fort... :p
-
cfoobar schrieb:
vsnprintf_s
Ist kein standard C :p
-
cooky451 schrieb:
cfoobar schrieb:
vsnprintf_s
Ist kein standard C :p
Warum hatte ich das geahnt?
-
pointercrash() schrieb:
cfoobar schrieb:
Ich wollte so nahe an seinem Originalcode bleiben wie es geht. Du hast aber Recht, eine Summenfunktion mit Argumenten wäre hier als Lösung sauberer gewesen.
EDIT: hier noch mal die saubere Lösung...
Sauber? Nö!
Ein/Ausgabe und Funktionen trennen, also int summe(int a, int b) mit returnvalue wär' angesagt.Richtig, dann wären wir bei meinem Code und müssten das ganze nicht nochmal 5-fach reposten.