Zeiger/Referenzen
-
Hi
ich bin ein C++ Anfänger.
in meiner Aufgabe steht: "Für die Rückgabe von mehr als einem Wert aus einer Funktion müssen Sie mit Zeigern/Referenzen arbeiten!"ich weiss nicht wie es geht!
bis jetzt habe ich dieses Programm geschrieben aber ich weiss nicht wo muss ich "Zeiger" nutzen#include <iostream> using namespace std; int main() { int abstand,g1,Bogenmin,Bogensek; double g2,nr, bogenmin2,nr2; cout << " Bitte geben sie den Abstand ein \n"; cin >> abstand; g1=(abstand/111);//Output g2=(abstand/111.0);//to find digits after decimal point nr=(g2-g1);//digits after decimal point Bogenmin=60*(nr);//Output bogenmin2=60*(nr);//to find digits after decimal point nr2=(bogenmin2-Bogenmin);//digits after decimal point Bogensek=60*(nr2);//Output cout << g1 <<"° "<< Bogenmin <<"' " << Bogensek <<"\" " <<endl; system("pause"); return 0; }
Kann Jemand mir helfen??
-
ryhne schrieb:
"Für die Rückgabe von mehr als einem Wert aus einer Funktion müssen Sie mit Zeigern/Referenzen arbeiten!"
Dafür wirst du wohl eine weitere (eigene) Funktion brauchen.
main
zählt nicht.
-
Hast du vllt ein Beispiel-funktion mit "Zeiger"?
Im internet habe ich nur einfache Funktionen gefunden.
-
ryhne schrieb:
Hast du vllt ein Beispiel-funktion mit "Zeiger"?
Im internet habe ich nur einfache Funktionen gefunden.Dann such mal nach swap
Mach du erstmal deine Funktion mit Referenz (ist sehr einfach).
Dann können wir dir den Unterschied zeigen.Eine Funktion aus der C-Standard-Library mit Rückgabe über Zeiger (die nicht mit char-Zeigern) arbeitet ist:
http://www.cplusplus.com/reference/cmath/modf/
sonst wäre da nochscanf
-
Danke sehr!
die Seite hat mir viel geholfen.#include <iostream> #include<math.h> using namespace std; int main() { double abstand,grad,Bogenmin,Bogensek,fractpart1, fractpart2,fractpart3,intpart1,intpart2,intpart3; cout << " Bitte geben sie den Abstand ein \n"; cin >> abstand; grad=(abstand/111.0); fractpart1=modf (grad,&intpart1); Bogenmin=60*(fractpart1); fractpart2= modf (Bogenmin,&intpart2); Bogensek=60*(fractpart2); fractpart3= modf (Bogensek,&intpart3); cout << intpart1 <<"°" << intpart2 <<"'" << intpart3 <<"\""<< endl; system("pause"); return 0; }
und es funktioniert gut
-
ryhne schrieb:
Danke sehr!
die Seite hat mir viel geholfen.So war das gar nicht gemeint
Zumal es deinem Verständnis wenig hilft.
Jetzt schreib eine Funktion, die die Berechnungen von Zeile 14 bis 24 enthält.
#include <iostream> #include<math.h> using namespace std; xxxxx Deine_Funktion(double abstand, .. weitere Parameter hier einbauen..) { hier die Berechnung } int main() { double abstand, intpart1,intpart2,intpart3; cout << " Bitte geben sie den Abstand ein \n"; cin >> abstand; Deine_Funktion(abstand, .. weitere Parameter hier einbauen..) cout << intpart1 <<"°" << intpart2 <<"'" << intpart3 <<"\""<< endl; system("pause"); return 0; }
-
Ja, ich habe es bemerkt und bevor ich weiter mache,habe ich alle Rechnungen als eine Methode geschrieben. Aber heir habe ich es nicht hochgeladen.
Danke trotzdem