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;
    }
    

Log in to reply