Warum wird meine Prozentrechnung nicht berechnet.? in C [Gelöst]



  • Hallo,

    es ist eine einfache Prozentrechnung die ich machen möchten.
    Eingabe Preis
    Eingabe Rabatt
    Berechnung des Endpreises
    Ausgabe Endpreis

    Leider gibt mein Programm mir einfach den ursprünglichen Preis aus. Was mache ich falsch.?

    Danke für Hilfe!

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void) {
    
    	int n;
    	int Rabatt;
    	float Endpreis;
    
    	printf("Gebe Preis ein");
    	scanf("%i", &n);
    
    	printf("Gebe Rabatt ein");
    	scanf("%i", &Rabatt);
    
    	Endpreis=(n-((Rabatt/100) * n));
    
    	printf("Endpreis beträgt: %f",Endpreis);
    	return 0;
    
    }
    

    Ausgabe
    Gebe Preis ein280
    Gebe Rabatt ein10
    Endpreis beträgt: 280.000000



  • Stichwort: Ganzzahl-Division (bei (Rabatt/100)).

    Lösung: erst multiplizieren, dann dividieren

    Endpreis = n - (Rabatt * n) / 100);
    


  • Oder als Fließkommadivision durchführen.
    Da reicht es, wenn einer der Paramter ein Fließkommatyp ist.
    Z.B.:

    Endpreis=(n-((Rabatt/100.0) * n));
    

    Das ist zumindest hier sinnvoll, da der Ergebnistyp auch ein Fließkommatyp ist.



  • Danke. Hat funktioniert.


Log in to reply