kostenloser Webspace werbefrei: lima-city


C Rechnen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    gyselanimatioon

    gyselanimatioon hat kostenlosen Webspace.

    Wie kann ich 2 ganze Zahlen einlesen und deren Summe, Produkt, Differenz und Quotioenten ausgeben. Bei mir gibt das ergebnis immer Fehler
    Mein Code:
    #include <stdio.h>
    
    int main (void) {
    int a;
    int b;
    int c;
    printf("Zahl 1:");
    scanf("%d", &a);
    printf("\nZahl 2:");
    scanf("%d", &b);
    c = a + b;
    printf("\nSumme: %d",c);
    c = a % b;
    printf("\nSumme: %d",c);
    c = a - b;
    printf("\nSumme: %d",c);
    c = a ^ b;
    printf("\nSumme: %d",c);
    return 0;
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*****y

    Das liegt daran, dass du den Datentyp nicht beachtest. ^^
    Zwei Ganzzahlen die Dividiert werden ergeben unter Umständen eine Fließkommazahl.

    Also muss c ein Fließkommazahl sein und auch als solche ausgegeben werden.
    Inwieweit und ob man überhaupt Konvertieren muss weiß ich nicht,
    ich programmiere kein C/C++.

    Aber mal ohne viel darüber zu wissen müsste es reichen,
    wenn du c als float deklarierst.

    Und an stelle deines Produkts nutzt du den Modulo-Operator " % ",
    anstatt des Multiplikations-Operanten " * ", also einen Operator,
    der dir den Rest einer Division zurückliefert.

    Und das Letzte ist ein Bit-Operator, um genau zu sein das XOR,
    also das Alternative-Oder, anstatt des Divisions-Operanten " / ".
    c = a ^ b;


    Beitrag zuletzt geändert: 13.3.2014 15:26:03 von clarity
  4. wie clarity schon geschrieben hat, hat es etwas mit dem Datentyp zu tun. Das Ändern auf float allein reicht allerdings hier nicht...
    Man muss dann auch bei scanf das %d zu %f ändern, selbiges auch bei printf.
    #include <stdio.h>
    
    int main (void) {
      float  a;
      float  b;
      float  c;
      printf("Zahl 1:");
      scanf("%f", &a);
      printf("\nZahl 2:");
      scanf("%f", &b);
      c = a + b;
      printf("\nSumme: %f",c);
      c = a - b;
      printf("\nDifferenz: %f",c);
      c = a * b;
      printf("\nProdukt: %f",c);
      c = a / b;
      printf("\nDivision: %f",c);
      return 0;
    }


    Wenn du dann die Operatoren nicht wie oben beschrieben richtigstellst, wirst du mehrere Compile-Fehler bekommen weil % und ^ Ganzzahldatentypen brauchen.
  5. #include <stdio.h>
    
    int main (void) {
      double a;
      double b;
      double  c;
      printf("Zahl 1:");
      scanf("%lf", &a);
      printf("\nZahl 2:");
      scanf("%lf", &b);
      c = a + b;
      printf("\nSumme: %lf",c);
      c = a - b;
      printf("\nDifferenz: %lf",c);
      c = a * b;
      printf("\nProdukt: %lf",c);
      c = a / b;
      printf("\nDivision: %lf",c);
      return 0;
    }



    double ist viel üblicher, deshalb würde ich das empfehlen.
    An den OP: Einrücken macht es übersichtlicher! Jedes mal nach einem { einrücken

    zb:
    if(i==1){
      i=2;
    }
  6. tips schrieb:
    double ist viel üblicher, deshalb würde ich das empfehlen.
    double ist nicht nur üblicher, es gibt dir auch eine höhere Präzision (und größeren Zahlenbereich). Führe das z. B. mal aus:
    #include <stdio.h>
    
    int main(void)
    {
        float a = 1000000000.0;
        float b = 1.0;
        double x = a;
        double y = b;
        
        if (a == a + b){
            printf("\nMit float gilt:\n%1.1f + %1.1f = %1.1f\n", a, b, a + b);
        }
    
        printf("\ndouble ist besser:\n%1.1f + %1.1f = %1.1f\n", x, y,  x + y);
        return 0;
    }
    Wie man an der if-Abfrage sieht, ist für float eine Milliarde plus Eins genau eine Milliarde!
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!