warum kann meine Funktion nicht benutzt werden? ich finde den Fehler nicht!!!



  • Hallo,habe mir folgendes Programm feschrieben, welches Fahrenheit in celsius und umgekehrt schreibt. dev_Cpp zeigt mir als fehler, dass die funktion niht genutzt werden kann. Aber ich finde den Fehler nicht

    #include <iostream>
    
    using namespace std;
    
    void fahrenheit(double), celsius(double);        //Prototyp
    
    int main()
      {
      double fahrenheit, celsius;
      char eingabe;
      int auswahl(0);
    
      while(auswahl == 0)
        {
        cout << endl
             << "Fahrenheit-Celsius / Celsius-Fahrenheit - Rechner" << endl
             << "-------------------------------------------------" << endl << endl
             << "1: Fahrenheit - Celsius" << endl
             << "2: Celsius - Fahrenheit" << endl;
        cin  >> auswahl;
    
        if(auswahl != 1 && auswahl != 2)
          auswahl = 0;    
    
        switch(auswahl)
          {
          case 1:
               cout << "Fahrenheit: ";
               cin  >> fahrenheit;
               fahrenheit(fahrenheit);
               break;
          case 2:
               cout << "Celsius: ";
               cin  >> celsius;
               celsius(celsius);             
               break;        
          }
          cout << "Nocheinmal?" << endl
               << "j/J:ja  |  n/N: Nein" << endl;
          cin  >> eingabe;
          switch(eingabe)
            {
            case 'j':
            case 'J':
                 auswahl = 0;
                 break;
            case 'n':
            case 'N':
                 auswahl = 1;      
                 break;
            default:
                 auswahl == 1;               
            }
    
        } 
    
      return 0;        
      }
    
    //Funktionen
    
    void fahrenheit(double fahrenheit)
      {
      double celsius;
      celsius = (5/9) * (fahrenheit - 32);
      cout << endl 
           << fahrenheit << " Grad Fahrenheit entsprechen " << celsius << "Grad Celsius"
           << endl;
      }
    
    void celsius(double celsius)
      {
      double fahrenheit;
      fahrenheit = (9/5) * celsius + 32;
      cout << endl
           << celsius << " Grad Celsius entsprechen " << fahrenheit << "Grad Fahrenheit"
           << endl;
      }
    

    die funktionen habe ich auch schon mit double probiert, da funzt das irgendwie auczh nicht



  • seh ich das richtig, dass du die funktion und die variable gleich genannt hast? 😕



  • Was mir spontan auffällt, ist die Deklaration (selbst wenn's erlaubt ist, das sieht nicht sehr schön aus):

    void fahrenheit(double), celsius(double);        //Prototyp
    //Mach mal so:
    void fahrenheit(double);
    void celsius(double);
    

    Außerdem benutzt du für die double-Variablen den gleichen Namen wie für die Funktionen, benenn eins von beiden um.



  • ja. das dürfte doch aber keine fehler hervorrufen



  • GPC schrieb:

    Was mir spontan auffällt, ist die Deklaration (selbst wenn's erlaubt ist, das sieht nicht sehr schön aus):

    void fahrenheit(double), celsius(double);        //Prototyp
    //Mach mal so:
    void fahrenheit(double);
    void celsius(double);
    

    Außerdem benutzt du für die double-Variablen den gleichen Namen wie für die Funktionen, benenn eins von beiden um.

    So hab ich das doch. irgendwelche vamen brauche ich ja noch damit, ich das auswerten kann(bei mir Celsius und fahrenheit)



  • // Prototypen
    void fahrenheit(double);
    void celsius(double);
    
    int main()
    {
      double fahrenheit, celsius; // "ueberdecken" die Funktionsbezeichner...
      // ...
    
        ::fahrenheit(fahrenheit); // ... deswegen musst du hier explizit sagen
                                  // was du meinst
        // ...
        ::celsius(celsius); // hier genauso
    
      // ...
    

    edit: umbenennen ist natürlich die absolut geschicktere Variante, vor allem da die Funktionen IMAO nicht allzu aussagekräftig sind; versuch's mal mit fahrenheit[To|Nach]Celsius und umgekehrt 🙂



  • reichs schrieb:

    So hab ich das doch. irgendwelche vamen brauche ich ja noch damit, ich das auswerten kann(bei mir Celsius und fahrenheit)

    wenns wirklich Celsius wär dan hättest nur einen Fehler. 😉


Anmelden zum Antworten