Kleines C program brauche aweng hilfe!!!



  • John Doh schrieb:

    ok aber warum dann wen ich ohne getchar trick 0 eintipe passiert nix?

    0 ist ja auch erlaubt, genau so wie andere zahlen und +.-
    alles andere will 'scanf ("%f",...)' nicht haben...



  • @net
    aber ist das nicht so das wenn while schlei 0 sieht bendet sie die schleife???
    und noch eine frage wie kann ich prozent zeichen aufs bildschirm bekommen??

    mit printf("%") funktioniert es nicht!!



  • ok das mit den % habe ich hin bekommen

    puts("%")



  • ok das nächste problem!

    wenn ich "1x" eintippe soll ermir auch ne fehler ausgeben!

    macht er aber nicht!

    woran liegts?



  • John Doh schrieb:

    @net
    aber ist das nicht so das wenn while schlei 0 sieht bendet sie die schleife???

    probier mal 'while(p != 0.0)' anstatt 'while(p != 0)'. fliesskommazahlen muss man mit dezimalpunkt schreiben. vielleicht hift das.

    John Doh schrieb:

    ok das mit den % habe ich hin bekommen
    puts("%")

    wenn du's mal mit printf brauchst:

    printf ("ein prozentzeichen: %%");
    printf ("zwei prozentzeichen: %%%%");
    


  • John Doh schrieb:

    wenn ich "1x" eintippe soll ermir auch ne fehler ausgeben!
    macht er aber nicht!

    sollte aber. die 1 wird akzeptiert und bei dem 'x' sollt er 'fehler' ausspucken



  • ja eben der schreibt dann
    zahl eingeben::1x
    okay
    zahl eingeben::fehler
    _(blinkender eingabe kursor)

    ich brauche aber das er einfach nur fehler ausgibt und mit der eingabe weter vort fährt!
    was muss ich da ändern?



  • John Doh schrieb:

    ja eben der schreibt dann
    zahl eingeben::1x
    okay
    zahl eingeben::fehler
    _(blinkender eingabe kursor)
    ich brauche aber das er einfach nur fehler ausgibt und mit der eingabe weter vort fährt!
    was muss ich da ändern?

    das ist ja doof 😞
    dann musste wohl strings einlesen und überprüfen ob alle ziffern gültig sind. schätze mal mit 'scanf ("%lf", ...)' wird sowas schwer werden.



  • na gut frage ich meinen prof morgen !

    vielen dank für deine hilfe!

    cu



  • net schrieb:

    dann musste wohl strings einlesen und überprüfen ob alle ziffern gültig sind.

    muss er nicht.

    net schrieb:

    schätze mal mit 'scanf ("%lf", ...)' wird sowas schwer werden.

    nö:

    #include <stdio.h>
    #include <ctype.h>
    
    int main( )
    {
        int  f = 0, r = 0, result;
        double p = 1.0;
        char ch;
    
        while( p != 0.0 ) {
    
            printf("Neue Zahl:::");
            result = scanf( "%lf", &p );
    
            while( ( ch = getchar( ) ) != '\n' ) {
    
                if( !isspace( ch ) && result == 1 )
                    result = 0;
            }
    
            if( result == 1 ) {
    
                printf("okay\n");
                r++;
    
            } else {
    
                printf("fehler\n");
                f++;
            }
        }
    
        printf("Anzahl der Fehler::%d\n",f);
        printf("Anzahl der Okays::%d\n",r);
    
        return 0;
    }
    

    Greetz, Swordfish


Anmelden zum Antworten