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