C problem



  • Hi Leute.. muss C lernen und finde einen fehler nicht. könnt ihr mir helfen.

    Code :

    #include <stdio.h> 
    
    main(){
           int x,y;
           printf("\n\t1 .  Rechenprogramm\n");
           printf("\nBitte x eingeben :");
           scanf("%i",&x);
           printf("\nBitte y eingeben :");
           printf("%i",&y);
           printf("\n %i + %i ist %f",x,y,x+y);
           printf("\n %i - %i ist %f",x,y,x-y);
           printf("\n %i * %i ist %f",x,y,x*y);
           printf("\n %i / %i ist %f",x,y,x/y);
           printf("\n %i %% %i ist %f",x,y,x%y);
    getchar();
    getchar();
    }
    

    Starte ich das Programm kann ich x eingeben und nach eingabe überspringt er y.
    Bei Y steht dann 2293616
    und bei der Rechnun steht für y überall eine 60 ?!?!

    peil ich net...

    danke.. gruss



  • Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ups... natuerlich

    scanf("%i",&y);

    ok nun nimmt er beide werte nur das ergebnis is komisch

    da kommt raus :

    12 + 3 ist -1.#QNAN0

    was das ????



  • probier mal das:

    #include <stdio.h>
    
    int main(void){
           float x,y;
           printf("\n\t1 .  Rechenprogramm\n");
           printf("\nBitte x eingeben :");
           scanf("%f",&x);
           printf("\nBitte y eingeben :");
           printf("%f",&y);
           printf("\n %f + %f ist %f",x,y,x+y);
           printf("\n %f - %f ist %f",x,y,x-y);
           printf("\n %f * %f ist %f",x,y,x*y);
           printf("\n %i / %f ist %f",x,y,x/y);
           printf("\n %f %% %f ist %f",x,y,x%y);
    }
    

    warum das jetzt nicht funktioniert hat, erfährst du im nächsten Kapitel ausführlich



  • mach mal nach jedem scanf fflush oder die while-Methode (such nach Tastaturbuffer leeren)

    und die ausgaben mit %d nicht %i irgendwas war damit.

    Die zusammenrechnung müsstest Du noch casten nehm ich mal an.

    also (%d / %d = %f ,x,y,(float)x/y);

    Du brauchst nur ein getchar() am Ende... hat er wahrscheinlich vorherübersprungen weil noch was im Tastaturbuffer lag.



  • %d steht fuer int
    %f fuer floats

    entscheide dich fuer eines. deine ausgabe verwendet naemlich %f fuer ints.


Anmelden zum Antworten