scanf



  • hallo zusammen ich habe ein problem mit folgendem Quelltext:

    #include <stdio.h>

    void main(){

    int Matrikelnummer;

    printf("\Bitte Matrikelnummer eingeben :");
    scanf("%i",&Matrikelnummer);
    printf("Die Matrikelnummer ist%i von xy");

    }

    wenn ich das programm starten will und zb. 505111 eingebe, hätte ich gerne als ausgabe die gleiche zahl. ich bekomme da aber eine negative zahl im 10 stelligen bereich raus.

    ich habe schon bücher und mein skript durch gewelztt, komme aber zu keinenm ergebnis.

    danke gruß struppi



  • Strulle schrieb:

    printf("Die Matrikelnummer ist%i von xy");

    Wo gibst Du denn die Variable "Matrikelnummer aus"?



  • das mach ich doch mit dem befehl oder nich?? da hab ich auch eine weile drüber überlegt ob es vllt daran liegt



  • Die Variable "Matrikelnummer" findet in dieser Zeile aber garkeine Erwähnung? Und printf hast Du auch nur gesagt "gib eine Integer-Zahl aus", nicht welche.



  • ahhh, ich habe es 🙄
    danke dir für den denk anstoß 👍

    ich muss hinter dem .....xy", Matrikelnummer); schreiben

    qausi so:

    printf("Die Matrikelnummer ist%i von xy", Matrikelnummer);

    jetzt geht das auch 🙂



  • hab nun ein neues problem, ich habe ein programm geschrieben was wie folgt aussieht:

    #include<stdio.h>

    void main()
    {
    int nutzziffer1, nutzziffer2, nutzziffer3, nutzziffer4, nutzziffer5, nutzziffer6, nutzziffer7;
    int pruefziffer;

    printf("nutzziffer1 =?");
    scanf("%i",&nutzziffer1);

    printf("nutzziffer2 =?");
    scanf("%i",&nutzziffer2);

    printf("nutzziffer3 =?");
    scanf("%i",&nutzziffer3);

    printf("nutzziffer4 =?");
    scanf("%i",&nutzziffer4);

    printf("nutzziffer5 =?");
    scanf("%i",&nutzziffer5);

    printf("nutzziffer6 =?");
    scanf("%i",&nutzziffer6);

    printf("nutzziffer7 =?");
    scanf("%i",&nutzziffer7);

    summeeinzelprodukte=nutzziffer1*3+nutzziffer2*1+nutzziffer3*3+nutzziffer4*1+nutzziffer5*3+nutzziffer6*1+nutzziffer7*3;
    modulo10=summeeinzelprodukte % 10;
    pruefziffer=(10-modulo10)%10

    printf("%i", pruefziffer);
    }

    wenn ich 4026816 (jede zahl für eine nutzziffer)eingebe. soll am ende für die prüfziffer 3 rauskommen
    für die summeeinzelprodukte soll 67 raus kommen, dass tut es auch, aber für modulo 10 kommt 667.000 raus wenn ich da die ausgabe mache, soll aber eigentlich 7 für rauskommen. ich habe das programm mal so zu ende geschrieben, wie ich mir das denke.



  • ich glaube ich schreibe das mal als neues thema, hat ja nichts mehr mit der überschrift zu tuen 😉



  • Es ist so, dass
    modulo10=summeeinzelprodukte % 10;

    1.) ergibt das ein float Ergebnis, es müsste so heißen:
    modulo10=(int) summeeinzelprodukte % 10;

    2.) hast du die Variable modulo10 gar nicht initialisiert.

    mfg


Anmelden zum Antworten