Problem mit Funktionen
-
HAllo ich hab ein Programm entwickelt womit man Funtionen berechen kann, aber der Compiler sagt immer eine Variable wurde zwei mal deklariert.
Code:1:#include <iostream> 2:int Radius(int d); //Funktion für Radius 3:int Durchmesser(int r); //Funktion für Durchmesser 4: 5: 6: 7: 8: 9:int main() 10:{ 11: int Function; 12: 13: 14: std::cout << "Was wollen sie suchen ? \n"; //Here I make a menu15 15: std::cout << " Radius = 1, Durchmesser = 2 \n"; //and ask what they want calculate. 16: std::cout << "Geben sie die jeweilige Zahl an : \n"; 17: std::cin.get(); 18: if ( Function == 1) // chooses selection of person 19: { if ( Function == 2) // and changes it to the function needed 20: int Durchmesser(); 21: } 22: else 23: int Radius(); 24: 25: return 0; 26:} 27: 28:#include <iostream> 29: 30:int Radius() 31:{ 32: int d; 33 int r; 34: std::cout << "Wie groß ist der Durchmesser (d)? \n"; 35: std::cin >> d; 36: std::cout << "Der Radius ist :" << r = d/2; 37: return d; 38: return 0; 39:} 40: 41:#include <iostream> 42: 43:int Durchmesser(int r) 44:{ 45: int r; 46: int d; 47: 48: std::cout << "Wie groß ist der Radius (r) ? \n"; 49: std::cin >> r; 50: std::cout << "Der Durchmesser ist :" << d= r*2; 51: return d; 52: return 0; 53:}
Fehlermeldungen:
"New.cpp": E2285 Keine Übereinstimmung für '_STL::ostream::operator =(int)' gefunden in Funktion Radius() in Zeile 36
"New.cpp": E2238 Bezeichner 'r' mehrfach deklariert in Funktion Durchmesser(int) in Zeile 44
"New.cpp": E2314 Aufruf einer Nicht-Funktion in Funktion Durchmesser(int) in Zeile 48
"New.cpp": E2285 Keine Übereinstimmung für '_STL::ostream::operator =(int)' gefunden in Funktion Durchmesser(int) in Zeile 49[edit="junix"]Bitte Code-Tags verwenden![/edit]
-
Oh mann, das kann ja heiter werden...
Zuerst deklarierst du den Funktions-Prototypen int Radius(int d);, definierst dann aber die Funktion int Radius();?Und was die Fehlermeldungen angeht: Die Zeilenangabe steht doch sogar schon dabei! Schau dir die Zeilen doch mal an, dann weißt du auch, was da falsch ist!
Jede Fehlermeldung sagt dir schon, was los ist:
Du kannst keine Variable zwei mal deklarieren!
int Durchmesser(int r)
44:{
45: int r;EDIT:
Und wieso steht in jeder der beiden Funktionen:return d; return 0;
?
Du kannst nur EINEN Wert "return"en, und dann ist die Funktion auch beendet!
-
ui.. wo fängt man da an?
1. Code-Tags verwenden http://www.c-plusplus.net/forum/faq.php?mode=bbcode"New.cpp": E2285 Keine Übereinstimmung für '_STL::ostream::operator =(int)' gefunden in Funktion Radius() in Zeile 36
2:int Radius(int d); //Funktion für Radius 23: int Radius(); 30:int Radius() 31:{
überlege mal, was stimmt hier nicht?
3.
"New.cpp": E2238 Bezeichner 'r' mehrfach deklariert in Funktion Durchmesser(int) in Zeile 44
43:int Durchmesser(int r) 44:{ 45: int r; 46: int d; 47: ...
und hier?
habe nicht alles durchgeschaut, aber sieht nach mehreren grundlegenden fehlern aus
-
grob verbesert.
#include <iostream> int Radius(); //Funktion für Radius int Durchmesser(); //Funktion für Durchmesser int main() { int Function; std::cout << "Was wollen sie suchen ? \n"; //Here I make a menu15 std::cout << " Radius = 1, Durchmesser = 2 \n"; //and ask what they want calculate. std::cout << "Geben sie die jeweilige Zahl an : \n"; std::cin >> Function; switch(Function) { case 1:Radius();break; case 2:Durchmesser();break; } return 0; } int Radius() { int r; int d; std::cout << "Wie groß ist der Durchmesser (d)? \n"; std::cin >> d; std::cout << "Der Radius ist :" << (r = d/2); return r; } int Durchmesser() { int d; int r; std::cout << "Wie groß ist der Radius (r) ? \n"; std::cin >> r; std::cout << "Der Durchmesser ist :" << (d= r*2); return d; }