Rechnungsfehler



  • Hi zusammen!

    In der Variable "FIF" steht ein falscher Wert.

    FILE *FFileD;
    FILE *FFileE;
    FILE *FFileF;
    int FID=0;
    int FIE=0;
    int FIF=0;
    int FIG=0;
    
    ...
    
    while((FID = fgetc(FFileD))!=EOF) {
    
    		            for(FIF=0;FIF<=9;++FIF) {
    
    		                FIE = fgetc(FFileE);
    
    		                if(FIE==13) {
    
    		                    FID=FID - FIF;
    
    		                    if(FID<0) {
    
    		                        FID = FID + SHIFT;
    
    		                    }
    
    		                    fprintf(FFileF,"%i",FID);
    
    		                    FIE=0;
    
    		                    FIF=0;
    
    		                    break;
    
    		                }
    
    		                if(FIE>47 && FIE<58) {
    
    		                    printf("\n%i", FIE);
    
    		                    FIE = FIE - 48;
    
    		                    FIF=FIF*10;
    
    		                    FIF=FIF + FIE;
    
    		                    printf("\n%i", FIF);
    
    		                }
    
    		            } /* for(FIF=0;FIF<=9;++FIF) */
    
    			    } /* while((FID = fgetc(FFileD))!=EOF) */
    

    Beschreibung:

    Der Zahlenwert der Variable FID wurde um einen beliebigen Wert verschoben. Dieser wird aus der zweiten Datei gelesen (je Zeile eine Zahl mit der Verschiebung) und zurück verschoben. Leider funktioniert das folgende Prinzip nicht:

    Wenn Zahl (0 - 9) -> Variable * 10 + Zahl -> bis neue Zeile beginnt -> verschiebung der anderen Zahl

    Wo liegt der Fehler in der Berechnung?

    Danke



  • Was für eine Ausgabe erwartest du und was für eine bekommst du?



  • oenone schrieb:

    Was für eine Ausgabe erwartest du und was für eine bekommst du?

    Das ist die Datei aus der das Password gelesen wird:

    164
    247
    0
    14
    215
    78
    101
    226
    149
    172
    

    Ich bekomme folgende Ausgabe:

    48
    1
    54
    26
    52
    4
    50
    12
    52
    4
    55
    57
    48
    10
    49
    11
    52
    4
    50
    12
    


  • Und wie meinst du sollte die Ausgabe korrekt aussehen?



  • oenone schrieb:

    Und wie meinst du sollte die Ausgabe korrekt aussehen?

    Z.B. müsste die 26 eine 16 sein...



  • Nimm den Debugger!


Log in to reply