Was ist falsch (iterative Summe)
-
Okay, ich werd erstmal mit euren Tipps weiterarbeiten.
-
Als erstes benutz die Cpp Tags please ^^
Schau mal ...
int SumIt(int n);Damit "deklarierst" du eine Funktion, d.h. du machst sie bekannt, irgendwo unter main ist jetzt eine Funktion die int zurückliefert, SumIt heisst und eine Variable vom Typ integer möchte.
Woher soll das Programm wissen was deine Funktion macht, wenn du sie nicht definierst ?#include <iostream> int SumIt(int n) //Funktion SumIt erwartet eine Variable vom Typ int { return n + 20; //gibt diese Zahl addiert mit 20 zurück } int main() { int zahl1 = 5; //Zahl zum übergeben für SumIt() int zahl2 = SumIt(zahl1); //zahl2 kriegt den Wert den SumIt() zurücklieftert std::cout << zahl2; //die Zahl wird geschrieben return zahl2; //main gibt die zahl2 zurück die nun den Wert 25 hat }Die Zahl kann auch nicht ausgegeben werden, wenn du das Programm es nicht ausgeben lässt und wo liegt der Sinn von return der Zahl in der main ...
-
Ari schrieb:
Er gibt mir das Ergebnis nicht aus, er beendet das Programm nach Eingabe der Zahl - wo liegt der Fehler :S
#include <iostream> using namespace std; int main(){ int n; cout << "Geben Sie eine Zahl ein:" ; // Du willst eine Eingabe? cin >> n ; // Du kriegst Sie... int SumIt(int n); // Hier sagst du dem Compiler, daß irgendwoanders eine // Funktion SumIt existiert, die dir ein Integer zurückgibt // Dh: Das ist ein Funktionsprototyp und // hier passiert jetzt garnichts ;) return n * ( n + 1 ) * 2 * n + 1 ) / 6; // Die main-funktion wird hier mit einem total // wirren Exit-Code verlassen }
-
Mein (euer) Ergebnis

Wie bekomme ich noch hin, dass das Ergebnis alleine in der Zeile steht? Irgendwie mit endl?
#include <iostream>
using namespace std;
int n;
int SumIt(int n){
return n * ( n + 1 ) * ( 2 * n + 1 ) / 6;
}int main(){
cout << "Geben Sie eine Zahl ein:" ;
cin >> n ;int zahl2 = SumIt(n);
cout << zahl2;
return zahl2;}
-
-
Okay, mach ich ab jetzt! Vielen Dank, ich meine, ich hätte sogar verstanden, was ich gemacht habe

#include <iostream> using namespace std; int n; int SumIt(int n){ return n * ( n + 1 ) * ( 2 * n + 1 ) / 6; } int main(){ cout << "Geben Sie eine Zahl ein:" ; cin >> n ; int zahl2 = SumIt(n); cout << zahl2 << endl; return zahl2; }
-
Das int n; was über SumIt hängt kannste ruhig an den Anfang der main() schreiben. Sie brauch nicht global sein.
-
Ari schrieb:
Okay, mach ich ab jetzt! Vielen Dank, ich meine, ich hätte sogar verstanden, was ich gemacht habe

int main(){ /* ** */ return zahl2; // Warum beendest Du die main mit dem Ergebnis? }Btw: Bitte C/C++ tags und nicht ständig soviel Code posten
Danke
-
Weil es funktioniert
Was wäre denn besser?
-
Achsooooooooo....*boing*
BTW: Sorry, ich werde mich nachher mal registrieren, damit ich nicht immer was neues schreiben muss.