probleme mit taschenrechner



  • Question:

    Warum Liest du den "rest" ein?

    Warum verwendest du %g ?
    (Ich verwende bei double %f)



  • Ich kann leider zum Problem nix beitragen aber ein Kommentar hätte ich noch: Wenn ihr euren Code einrückt, nimmt die Lesbarkeit erheblich zu und man sieht die Fehler viel viel schneller.



  • Wenn ihr euren Code einrückt, nimmt die Lesbarkeit erheblich zu und man sieht die Fehler viel viel schneller.

    Soetwas... das wäre mir nie eingefallen... aber nochwas...
    es giebt sogar eine eigene Schaltfläche "C/C++". 😃



  • und wie du sicher siehst...
    hat er versucht, es korrekt anzuzeigen, aber...

    schau in seiner Nachricht nach... er hat [cpp] ganz am Ende doch geschrieben!



  • chille07 schrieb:

    und wie du sicher siehst...
    hat er versucht, es korrekt anzuzeigen, aber...

    schau in seiner Nachricht nach... er hat [cpp] ganz am Ende doch geschrieben!

    Er hat zuerst das CPP Tag geschlossen und dann es geöffnet.



  • wenigstens hat ers versucht...
    und dann hilft ihm dein Ratschlag auch nicht weiter...
    (einrücken)



  • so, ich habe double mal gegen int eingetauscht. jetzt funktioniert es. 💡

    PS:mein code ist normalerweise eingerückt. ist nur scheinbar duch dass kopieren irgendwie abhanden gekommen. 👍



  • chille07 schrieb:

    wenigstens hat ers versucht...
    und dann hilft ihm dein Ratschlag auch nicht weiter...
    (einrücken)

    Ich hab auch nicht für diesen Code gemeint, sondern im allgemeinen. Ich sehe hier, dass viele den Code posten und der ist nicht eingerückt. Ist sicherlich dem Compiler egal, ob der Code eingerückt ist oder nicht, aber wir sind eben Menschen und keine Compiler.



  • supertux schrieb:

    aber wir sind eben Menschen und keine Compiler.

    Das ist eigentlich ein Spruch für ne Signatur... 😉



  • [quote="C-Progger"]ich habe versucht einen kleinen taschenrechner zu schreiben und bekomme immer massig fehlermeldungen.

    könnt ihr mir sagen was da alles falsch ist?

    ich habe eine andere Idee, das Problem des Taschenrechner zu lösen, und zwar mit 3 Funktionen und eine Switch, case Methode

    #include<stdio.h>
    #include<math.h>

    float Add(float, float);//Funtion für Addition
    float Dev(float, float);// F. für Devision
    float Mult(float, float);// Multiplikation

    int main()
    {
    float a, b;
    printf("1. Zahl: ");
    scanf("%g", &a);
    printf("2. Zahl: ");
    scanf("%g", &b);
    while(getchar != '\n');// versuch mal ohne dieser
    // Zeile das Programm auszuführen,
    char wahl;
    printf(".......................Tachenrechner..........................\n");
    printf("Bitte waehlen: \n\ta:Addition \n\tm:Multiplikation \n\td: Devision\n");
    scanf("%c",&wahl);
    switch(wahl)
    {
    case 'a': printf("Die Addition von %g und %g ist %g \n",a,b,Add(a,b));
    break;
    case 'm': printf("Die Multp. von %g und %g ist %g \n",a,b,Mult(a,b));
    break;
    case 'd': printf("Die Devision von %g durch %g ist %g \n",a,b,Dev(a,b));
    break;
    default: printf("Leider habe Sie eine falsche Eingabe eingegeben!!!\n");
    }
    return 0;
    } //Ende main Funktion

    float Add(float x, float y)
    {
    return(x+y);
    }
    float Mult(float x, float y)
    {
    return (x*y);
    }
    float Dev(float x, float y)
    {
    if (y == 0)
    {
    printf("\nDie Devision durch 0 ist nicht bekannt oder nicht zulässig!!!n");
    exit(0);
    }
    else
    return (x/y);
    }



  • So müsste es gehen:

    #include<stdio.h>
    /* math.h unnötig */
    
    float Add(float, float); /* Funtion für Addition */
    float Div(float, float); /* F. für Division <-- Rechtschraipfeler */
    float Mult(float, float); /* Multiplikation */
    
    int main() {
      float a, b;
      printf("1. Zahl: ");
      scanf("%g", &a);
      printf("2. Zahl: ");
      scanf("%g", &b);
    
      while(getchar() != '\n'); /* <-- () vergessen */
    
      char wahl;
      printf(".......................Tachenrechner..........................\n");
      printf("Bitte waehlen: \n\ta:Addition \n\tm:Multiplikation \n\td: Devision\n");
      scanf("%c", &wahl);
      switch(wahl) {
      case 'a': 
        printf("Die Addition von %g und %g ist %g \n", a, b, Add(a, b));
        break;
      case 'm': 
        printf("Die Multp. von %g und %g ist %g \n", a, b, Mult(a, b));
        break;
      case 'd': 
        printf("Die Devision von %g durch %g ist %g \n", a, b, Div(a, b));
        break;
      default: 
        printf("Leider habe Sie eine falsche Eingabe eingegeben!\n"); /* <-- zu viele Ausrufungszeichen. */
      }
      return 0;
    } //Ende main Funktion
    
    float Add(float x, float y) {
      return(x+y);
    }
    
    float Mult(float x, float y) {
      return (x*y);
    }
    
    float Div(float x, float y) {
      if (y == 0) {
        printf("\nDie Devision durch 0 ist nicht zulässig!n"); /* <-- nicht zulässig, zu viele Ausrufungszeichen. */
        exit(0);
      } else
        return (x/y);
    }
    


  • CarstenJ schrieb:

    supertux schrieb:

    aber wir sind eben Menschen und keine Compiler.

    Das ist eigentlich ein Spruch für ne Signatur... 😉

    Tja, eingentlich schon. Ich hab einmal den gleichen Satz im ersten Semester als wir uns gestritten haben, ob man sagen darf "der Compiler liest zeilenweise".

    0Xdeadbeef schrieb:

    float Div(float, float); /* F. für Division <-- Rechtschraipfeler */

    hey beefy, da hast du ein einen rechtSchraipheler 😃


Anmelden zum Antworten