Division bei Taschenrechnerprogrammierung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von MaXxer15, 5. März 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 5. März 2006
    Und zwar wenn ich bei dem Programm *4* eingebe und *Enter* drücke komme ich zwar zur Division (Case 4) aber nachdem ich die 2 Zahlen eingegeben habe, stürzt mein Rechner ab...
    Was hab ich falsch gemacht ??? Hilfe wird mit nem 10'er belohnt.

    //edit: klar ist mir schon, das wenn ich %lf und %f duch %d ersetze, das das dann funzt. Ich möchte aber auch Kommazahlen als Ergebnis haben und wenn es geht auch eingeben können...

    Mfg: MaXxer16

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
    int a, b, gleich, zahl;
    printf ("Welche Rechenart bevorzugen sie ?\n\n1=Addition\n2=Subtraktion\n3=Multiplikation\n4=Division(mit 2 Nachkommastellen)\nEingabe: ");
    scanf ("%d",&zahl);
    switch (zahl)
    {
    case 1: printf ("\nAddition\n\n");
     printf ("Bitte die 2 Zahlen zur Addition eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a+b;
     printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich);
     break;
    case 2: printf ("\nSubtraktion\n\n");
     printf ("Bitte die 2 Zahlen zur Subtraktion eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a-b;
     printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich);
     break;
    case 3: printf ("\nMultiplikation\n\n");
     printf ("Bitte die 2 Zahlen zur Multiplikation eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a*b;
     printf ("\n\nErgebnis: %d * %d = %d", a, b, gleich); 
     break;
    case 4: printf ("\nDivision\n\n");
     printf ("Bitte die 2 Zahlen zur Division eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%lf", &a);
     printf ("Zahl 2: ");
     scanf ("%lf", &b);
     gleich = a/b;
     printf ("\n\nErgebnis: %f : %f = %f", a, b, gleich);
     break;
    default: printf ("\n\n\nError:\nSie haben die Zahl %d eingegeben.\nDiese Zahl entspricht nicht den Vorgaben.\nStarten die das Programm nun bitte erneut.", zahl);
    }
    printf ("\n\n\n\n\n\n\n\n\n\nBitte nun eine beliebige Zahl zum beenden drücken //Copyright 2006 by MaXxer16");
    getch();
    return 0;
    }
     

  2. Anzeige
  3. #2 5. März 2006
    HI

    hab ma dein proggy umgeschrieben, jetzt funktionierts mit dem teilen.

    Hab als erstes alle Variablen (außer zahl) als float Deklariert, da wenn du 2 int's teilst, wird wieder ein int rauskommen => 5/2 = 2 (mit float dann natürlich 2,5)

    und beim einlesen deiner Zahlen mochte er dass %lf nicht, ich weiß auch nich genau, wie der Ausdruck für größere datentypen als float ist, aber %f reicht für float (und geht auch)

    habe aber nur die die Division verändert, du wenn bei den anderen rechenoperationen auch mit %f einließst, kannst du auch kommazahlen multiplizieren etc.
    worauf du hierbei achten musst, ist einfach als "Komma" einen "." zu schreiben

    MFG

    Hamml

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
    int zahl;
    float a, b, gleich;
    printf ("Welche Rechenart bevorzugen sie ?\n\n1=Addition\n2=Subtraktion\n3=Multiplikation\n4=Division(mit 2 Nachkommastellen)\nEingabe: ");
    scanf ("%d",&zahl);
    switch (zahl)
    {
    case 1: printf ("\nAddition\n\n");
     printf ("Bitte die 2 Zahlen zur Addition eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a+b;
     printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich);
     break;
    case 2: printf ("\nSubtraktion\n\n");
     printf ("Bitte die 2 Zahlen zur Subtraktion eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a-b;
     printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich);
     break;
    case 3: printf ("\nMultiplikation\n\n");
     printf ("Bitte die 2 Zahlen zur Multiplikation eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%d", &a);
     printf ("Zahl 2: ");
     scanf ("%d", &b);
     gleich = a*b;
     printf ("\n\nErgebnis: %d * %d = %d", a, b, gleich);
     break;
    case 4: printf ("\nDivision\n\n");
     printf ("Bitte die 2 Zahlen zur Division eingeben\n");
     printf ("Zahl 1: ");
     fflush(stdin);
     scanf ("%f", &a);
     printf ("Zahl 2: ");
     scanf ("%f", &b);
     gleich = a/b;
     printf ("\n\nErgebnis: %f : %f = %f", a, b, gleich);
     break;
    default: printf ("\n\n\nError:\nSie haben die Zahl %d eingegeben.\nDiese Zahl entspricht nicht den Vorgaben.\nStarten die das Programm nun bitte erneut.", zahl);
    }
    printf ("\n\n\n\n\n\n\n\n\n\nBitte nun eine beliebige Zahl zum beenden drücken //Copyright 2006 by MaXxer16");
    getch();
    return 0;
    }
    
     
  4. #3 5. März 2006
    Du müstest auch noch die Division durch Null abfangen.

    In etwa if b <> 0 then...

    Wäre einfach eine saubere Lösung.
     
  5. #4 5. März 2006
    stimmt, hab ich vorhin gar nicht dran gedacht :)
     
  6. #5 7. März 2006
    Danke danke hab ich direkt mal gemacht ;)
    Nun ist mein 1. Programm in C programmiert und der Thread somit geclosed

    Mfg: MaXxer16

    P.S.: Habt natürlich beide nen 10'er bekommen
     

  7. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Division Taschenrechnerprogrammierung
  1. Antworten:
    2
    Aufrufe:
    11.223
  2. Antworten:
    14
    Aufrufe:
    1.895
  3. Antworten:
    2
    Aufrufe:
    696
  4. Antworten:
    7
    Aufrufe:
    701
  5. Antworten:
    4
    Aufrufe:
    1.264