Variablen speichern falschen Wert



  • Hallo,
    ich bin C Anfänger und habe natürlich bei meinem 1. Programm gleich ein Problem.
    Ich hoffe ihr könnt mir helfen und verzeiht mir meine Unfägigkeit 😃

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
    int prozent_schriftlich;
    int prozent_muendlich;
    
    printf("                     Loewecksche Fehlkursformel Rechener                 \n");              // Kopfzeile
    printf("--------------------------------------------------------------------------------\n");       // **
    
    printf("Geben Sie die den Prozentwert der Muendlichen Note ein:   ");
    scanf("%d",&prozent_muendlich);
    
    printf("Geben Sie die den Prozentwert der Schriftlichen Note ein: ");
    scanf("%d",&prozent_schriftlich);
    
    printf("Der muendliche Eert ist: %d\n",&prozent_muendlich);
    printf("Der schriftlche Wert ist: %d\n",&prozent_schriftlich);
    
    system("PAUSE");
      return 0;
    }
    

    Als Ausgabe, also bei...

    printf("Der muendliche Eert ist: %d\n",&prozent_muendlich);
    printf("Der schriftlche Wert ist: %d\n",&prozent_schriftlich);
    

    ...bekomme ich immer 2686748 heraus, warum

    Ich freue mich über eine Antwort, Vielen Dank 🙂

    Schnickalodeon


  • Mod

    Weil printf anders benutzt wird. printf und scanf sind keine genauen Gegenstücke. Guck dir noch einmal an, wie printf funktioniert.





  • C-Fritze schrieb:

    Les dir mal das durch: http://openbook.galileocomputing.de/c_von_a_bis_z/004_c_ein_ausgabe_001.htm

    Bitte nicht. Das ist so schlecht, dass ich kotzen muss.

    4.1.2 ist eine Frechheit.

    Nie, nie wieder einen Link darauf posten! Und auch aus den Bookmarks löschen!



  • Nein!
    Les es dir nicht durch.



  • Manpages: (unter Unix auch über man erreichbar)
    http://man.cx/printf%283%29
    http://man.cx/scanf



  • Furble Wurble schrieb:

    C-Fritze schrieb:

    Les dir mal das durch: http://openbook.galileocomputing.de/c_von_a_bis_z/004_c_ein_ausgabe_001.htm

    Bitte nicht. Das ist so schlecht, dass ich kotzen muss.

    4.1.2 ist eine Frechheit.

    Nie, nie wieder einen Link darauf posten! Und auch aus den Bookmarks löschen!

    Mir ging es nur um die Erklärung des Adressoperators &,
    was findest du daran so schlecht?



  • C-Fritze schrieb:

    Furble Wurble schrieb:

    C-Fritze schrieb:

    Les dir mal das durch: http://openbook.galileocomputing.de/c_von_a_bis_z/004_c_ein_ausgabe_001.htm

    Bitte nicht. Das ist so schlecht, dass ich kotzen muss.

    4.1.2 ist eine Frechheit.

    Nie, nie wieder einen Link darauf posten! Und auch aus den Bookmarks löschen!

    Mir ging es nur um die Erklärung des Adressoperators &,
    was findest du daran so schlecht?

    Keine Ahnung, was er zum adressof-Operator schreibt. Kann sogar sein, dass der Teil makellos ist.

    Aber ich bezweifle, dass jemand der dort hingelangt um Informationen zu finden die Spreu vom Weizen trennen kann.

    Ich zitiere mal:

    C von A-Z schrieb:

    scanf() ist ähnlich aufgebaut wie printf(). Wie bei printf() werden hier zwei Klammern und zwei Hochkommata verwendet.

    Das ist doch Satire? Oder?
    (und ich habe jetzt nur irgendwo auf der Seite 2 Sekunden quergelesen um das zu finden!)

    Und was ich vorhin las: um Whitespaces (speziell \n am Zeilenende aus streams zu entfernen, rät der Autor folgendes;
    a) flush(stdin)
    b) do {scanf("%c",&a);} while ( getchar() != '\n' );
    v) Sie verwenden scanf() erst gar nicht (wie dies in der Praxis aus Sicherheitsgründen zu empfehlen ist) und greifen auf eine der vielen anderen Standardeingabe-Funktionen zurück.

    Ich meld mich ab... 😞



  • Ja du hast Recht,
    Wie bei printf() werden hier zwei Klammern und zwei Hochkomma verwndet 😃
    Das nächste mal werde ich genauer lesen



  • Vielen Dank, ich habe meinen Fehler gefunden 🙂
    Super wie schnell man hier Hilfe bekommt 🙂


Log in to reply