c rechnung



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        double rechnung,
    		honorar_vb = 5,
    		buch = 15,95;
    
    	double honorar;
    
    	honorar = 19,95/100*5;
        buch = 1000000/honorar
    
        printf("Honoraranteil : %f\n", honorar);
    	printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); 
    
    	system("PAUSE");
    	return 0;
    
    }
    

    was mach ich denn hier falsch 😕



  • hmm du glaubst das % das selbe ist wie die mathematische Prozentrechnung. % ist ein Modulo-Operator.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        double honorar = 5 / 100 * 15,95; // p / 100 * G
        buch = honorar/1000000
    
        printf("Honoraranteil: %f\n", honorar);
        printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n, (1000000 / honorar));
    }
    

    ...



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
    	double honorar = 5 / 100 * 15,95;  
        double buch = honorar/1000000; 
    
        printf("Honoraranteil : %f\n", honorar);
    	printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); 
    
    	system("PAUSE");
    	return 0;
    
    }
    

    double honorar = 5 / 100 * 15,95;

    hier soll ein syntaxfehler sein?



  • Hallo !

    Michael991 schrieb:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        double rechnung,
    		honorar_vb = 5,
    		buch = 15,95;      // 15.95 -> Punkt statt Komma
    
    	double honorar;
    
    	honorar = 19,95/100*5;  // Modulo geändert, ok, aber trotzdem Punkt statt Komma
        buch = 1000000/honorar
    
        printf("Honoraranteil : %f\n, honorar); // String-Ende Zeichen, die Gänschefüßchen rechts fehlen.
    	printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); 
    
    	system("PAUSE");
    	return 0;
    
    }
    

    was mach ich denn hier falsch 😕

    Die Fehler habe ich dir mal kommentiert.
    Hast du einen stummen Kompiler der dir die Fehler nicht anzeigt ? 😕



  • Michael991 schrieb:

    double honorar = 5 / 100 * 15,95;

    hier soll ein syntaxfehler sein?

    Bingo !!! Ersetze das Komma durch einen Dezimalpunkt . 🙂

    Edit: Da hat sich das eine oder andere Posting überschnitten.



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        double rechnung, 
            honorar_vb = 5, 
            buch = 15.95;       
    
        double honorar; 
    
    	honorar = 15.95/100*5;  
        buch = honorar/1000000;
    
        printf("Honoraranteil : %lf\n", honorar);
    	printf("Wiviele Buecher er verkaufen muss um Millionaer zu werden : %lf\n", buch); 
    
    	system("PAUSE");
    	return 0;
    
    }
    

    ok er führt es aus, aber:

    Honoraranteil = 0,797500 (Euro?)

    Buecher die er verkaufen muss um Millonaer zu werden: o,ooooo1

    Hat das seine Richtigkeit?



  • habe jetzte buch = 1000000/honorar;
    statt buch = honorar/1000000;

    eingegeben.

    Jetzt kommt raus: 1253918.495298

    Sind aber ne ganze Menge Bücher, wie kann ich denn es so machen das die Zahl aufgerundet ist oder nur 2Stellen nach dem Komma anzeigt?



  • Noch etwas 🙂 :

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        char z1 = 'W',
             z2 = 'X',
    	     z3 = '66';
    
    	printf("z1 = %c z2 = %c z3 = %d \n", z1,z2,z3);
    
    	system("PAUSE");
    	return 0;
    
    }
    

    warum wird mir bei z3 54 angezeigt und nicht 66?

    Edit: Hab den Fehler schon ^^



  • Michael991 schrieb:

    habe jetzte buch = 1000000/honorar;
    statt buch = honorar/1000000;

    eingegeben.

    Jetzt kommt raus: 1253918.495298

    Sind aber ne ganze Menge Bücher, wie kann ich denn es so machen das die Zahl aufgerundet ist oder nur 2Stellen nach dem Komma anzeigt?

    Ich bin zwar in C nicht so ganz fix aber eines der folgenden könnte das erledigen:

    double d;
    printf("Auf zwei Stellen: %.2f", d);//< warscheinlicher
    printf("Auf zwei Stellen: %2f", d);//< sonst so
    

    printf() bekommt doch pointer ...
    EDIT:// scheinbar nicht ...



  • Hab deine Rechnung nicht kontrolliert ... aber sollte falsch sein 😉

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        double honorar = 5 / 100 * 15.95; // p / 100 * G
        printf("Honoraranteil: %.2f\n", honorar);
        printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n, (1000000 / honorar));
    }
    

    wäre wohl korrekt ...

    und zum anderen:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        char z1 = 'W';
        char z2 = 'X';
        int z3 = 66;
    
        printf("z1 = %c z2 = %c z3 = %d \n", z1, z2, z3);
        printf("z1 = %c z2 = %c z3 = %c \n", z1, z2, z3);
    }
    

    ...



  • Danke!

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
        char z1 = 'W',
             z2 = 'X',
    	     z3 = 66;
    
    	printf("z1 = %c z2 = %c z3 = %d \n", z1,z2,z3);
    
    	system("PAUSE");
    	return 0;
    
    }
    

    funktioniert aber auch 😮



  • hmm jap. Ist aber etwas tricky 😉
    du weißt halt erst dem char z3 das Zeichen mit dem ASCII-Code 66 zu. Dann gibst du aber mit printf wieder den ASCII-Code aus, da du %d anstelle von %c genommen hast.


Anmelden zum Antworten