Problem mit einen C Programm



  • Hi Leutz ich soll für die fh für diese frage nen programm schreiben:
    programmiert. Es geht um die Konvertierung von gebrochenen
    Zahlen aus dem Dezimalsystem in ein Zahlensystem zur Basis B!!!
    Soweit so schön das habe ich hin bekommen funzt aber irgendwie net ? kann mir evtl einer mal sagen was ich falsch mache ????

    Danke im voraus

    include <stdio.h> 
    #include <math.h> 
    
    int main(void) 
    { 
    double zahl_dec=0, vor_komma, nach_komma, rest, produkt, zahl_temp; 
    int zielbasis=0, stellen_vor=0, stellen_nach=0, quotient, i, reelteil; 
    char *zahl_b_vor, *zahl_b_nach; /* Vorkomma- und Nachkommateil der Zahl zur Zielbasis */ 
    
        printf("Das Programm konvertiert gebrochenrationale Zahlen aus dem " 
        "Dezimalsystem in ein Zahlensystem zur Basis B(2<= B <=16)\n\n"); 
    
        printf("Geben Sie eine Zahl(mit natuerlichem Vorkommateil) ein: ");    
        scanf("%lf", &zahl_dec); 
        if (zahl_dec < 0) 
        { 
            printf("\nUngueltige Eingabe! Negative Zahlen sind nicht erlaubt!\n"); 
            return 0; 
        } 
    
        printf("Geben Sie die Zielbasis(von 2 bis 16) ein: "); 
        scanf("%i", &zielbasis); 
        if (zielbasis<2 || zielbasis >16) 
        { 
            printf("\nUngueltige Eingabe! Nur Basen zwischen 2 und 16 sind erlaubt!\n"); 
            return 0;    
        } 
    
        vor_komma = floor(zahl_dec); /* Ermittlung des Vorkommateils */ 
        nach_komma = zahl_dec - vor_komma; /* Ermittlung des Nachkommateils */ 
    
        /* Umwandlung des Vorkommateils */ 
        zahl_temp = vor_komma; 
        do 
        { 
            stellen_vor++; 
    
            quotient = floor(zahl_temp / zielbasis); 
            rest = (int)(zahl_temp)%zielbasis; 
            if (rest<=9) 
                zahl_b_vor[stellen_vor] = (0x30 + (int)rest); 
            else   /* wenn >9 Verwendung von Buchstaben A-F */ 
                zahl_b_vor[stellen_vor] = (0x41 + (int)rest-10); 
    
            zahl_temp = quotient; 
        }while(quotient > 0); 
    
        /* Umwandlung des Nachkommateils, falls dieser vorhanden */    
        if (nach_komma > 0) 
        { 
            zahl_temp = nach_komma; 
            do 
            { 
                stellen_nach++; 
    
                produkt = zahl_temp * zielbasis; 
                reelteil = (int)(floor(produkt)); 
                rest = produkt-reelteil; 
                if (reelteil<=9) 
                    zahl_b_nach[stellen_nach] = (0x30 + reelteil); 
                else   /* wenn >9 Verwendung von Buchstaben A-F */ 
                    zahl_b_nach[stellen_nach] = (0x41 + reelteil-10); 
    
                zahl_temp = rest; 
            }while(produkt > 0 && stellen_nach < 10); 
        } 
    
        /* Ausgabe der Ergebnisses */    
        printf("\nDie Zahl %.10lf im Dezimalsystem entspricht der Zahl ", zahl_dec); 
        for (i=stellen_vor; i>0; i--) 
        { 
            printf("%c", zahl_b_vor[i]); 
        } 
    
        if (nach_komma > 0) 
        { 
            printf(".");    
            for (i=1; i<=stellen_nach; i++) 
            { 
                printf("%c", zahl_b_nach[i]); 
            } 
        }        
        printf(" in einem Zahlensystem zur Basis %i\n", zielbasis); 
    
      return 0; 
    }
    


  • C# und .NET != C



  • Dominic schrieb:

    C# und .NET != C

    Er kann doch C programmieren und dennoch .NET benutzen.
    Aber in ANSI-C ist es wohl besser aufgehoben da gucken mehr rein. Außerdem ist die Frage nicht wirklich .NET bezogen (managed C++ z.B.).

    Code-Hacker



  • Code-Hacker schrieb:

    Außerdem ist die Frage nicht wirklich .NET bezogen (managed C++ z.B.).

    Problem mit einen C Programm


Anmelden zum Antworten