[C/C++] kleiner Fehler, aber wo ?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von »The Gr4ndp4, 9. Februar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 9. Februar 2009
    kleiner Fehler, aber wo ?

    Hallo, ich bin nicht gerade ein Ass im Programmieren, ich habe hier ein kleines Programm gemacht, finde den Fehler aber nicht, wenn er das ergebniss ausgibt, kommt immer "0.0000"

    Code:
    
    
    #include <stdio.h>
    #include <math.h>
    
    
    int main ()
    
    {
     
     int a,b;
     char c;
     float d;
     printf("Bitte geben Sie den Wert ein:");
     scanf("%d",&a); 
     getchar(); 
     
     printf("Bitte geben Sie den 2.Wert ein:");
     scanf("%d",&b); 
     getchar(); 
     
     printf("Wählen Sie zwischen +, -, *, /:");
     scanf("%c",&c); 
     getchar();
     
     if(c=='+')
     {
     d=a+b;
     printf("Ergebnis Addition: %2.4f",&d);
     }
     else if (c=='-') 
     {
     d=a-b;
     printf("Ergebnis Subtraktion: %4.2f",&d); 
     } 
     else if (c=='*') 
     {
     d=a*b;
     printf("Ergebnis Multiplikation: %4.2f",&d); 
     } 
     else if (c=='/') 
     {
     d=a/b;
     printf("Ergebnis Division: %4.2f",&d); 
     }
     else 
     {
    
     printf("Falscher Rechenoperator"); 
     }
     
    getchar(); 
    return 0; 
    }
     
    
    
     
  2. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    bin mir da zwar echt nicht sicher, meine c/c++ zeit liegt lange zurück, aber wenn du 2 integerwerte zusammenrechnest, dividierst etc. und auf nen float zuweisen willst geht das mMn. nicht (ohne cast). ändere einfach mal int a,b; in float a,b; um, um diese möglichkeit auszuschließen.

    wie gesagt nur ein erster eindruck vom schnellen überfliegen
     
  3. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    Hey, danke erstmal

    ich habe die int werte in float geändert, nur der Fehler ist trotzdem noch vorhanden

    trotzdem danke
     
  4. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    hast du im scanf auch %d auf %f umgeändert beim einlesen von a & b ? bei mir funktsionierts nämlich
     
  5. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    mhh ja habe ich, kann es damit zusammen hängen das ich hier noch auf WIN 98 arbeite eig nicht oder, was für nen Compiler benuzt du, ich habe DEV C++.
     
  6. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    VS 2005;

    hier dein abgeänderter code:

    Code:
    #include <stdio.h>
    #include <math.h>
    
    
    int main ()
    
    {
     
     float a,b;
     char c;
     float d;
     printf("Bitte geben Sie den Wert ein:");
     scanf("%f",&a); 
     getchar(); 
     
     printf("Bitte geben Sie den 2.Wert ein:");
     scanf("%f",&b); 
     getchar(); 
     
     printf("Wählen Sie zwischen +, -, *, /:");
     scanf("%c",&c); 
     getchar();
     
     if(c=='+')
     {
     d=a+b;
     printf("Ergebnis Addition: %f",d);
     }
     else if (c=='-') 
     {
     d=a-b;
     printf("Ergebnis Subtraktion: %4.2f",&d); 
     } 
     else if (c=='*') 
     {
     d=a*b;
     printf("Ergebnis Multiplikation: %4.2f",&d); 
     } 
     else if (c=='/') 
     {
     d=a/b;
     printf("Ergebnis Division: %4.2f",&d); 
     }
     else 
     {
    
     printf("Falscher Rechenoperator"); 
     }
     
    getchar(); 
    return 0; 
    }
    
     
  7. 9. Februar 2009
    AW: kleiner Fehler, aber wo ?

    Ok ich habe den Fehler gefunden, das kaufmänische und =) Danke nochmal

    CLOSED
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.