Feststellen ob Ergebnis eine floatzahl ist.
-
c.rackwitz schrieb:
modulo ist eine operation
, die nur auf int/short/long geht. Ein a % b, wenn a und b float sind, schluckt der Compiler nicht.
-
Naja ist ja auch egal da ich dieses Problem ja schon gelöst habe. Bitte beantwortet noch meine Frage die ich dannach gestellt habe.
-
Darf man fragen, warum dein Dezimal->Binär Umrechner unbedingt mit Gleitkommawerten arbeiten muß? Wenn du sowieso keine Werte mit Nachkommastellen haben willst, ist int oder long wesentlich besser geeignet.
Tobi89 schrieb:
Geht dies auch das ich alle gleichzeit hinschreibe und auslese und dann z.b. in die variable bin tue und dann die einzelnen zahlen mit bin[1] aufrufe??
Du kannst deine Zahl auch als Zeichenkette (char-Array) einlesen und dann jede Ziffer direkt ansprechen (da mußt du aber von Hand kontrollieren, daß der Anwender keine ungültigen Werte eingegeben hat) oder per strtol() in eine Zahl umrechnen.
-
Da es ein Verfahren gibt wie man dezimal in Binär umwandelt und man dafür nach dem Rest gucken muss und 2tens hab ich erst ein halbes Jahr Ansi C inner Schule und kenne mich noch nicht ganz so gut aus wie ihr alle.
Aber danke ich weiss nur nicht wie ich das machen soll mit dem Char array.
also ich würds z.b. so machen:
[cpp]
int bin[8];
printf("Zahl eingeben");
scanf("%i%i",&bin[0],&bin[1]); <--- der Scanf Befehl geht nicht, weiss halt nicht wie ich die einzelnen Zahlen scannen kann.
-
Tobi89 schrieb:
Da es ein Verfahren gibt wie man dezimal in Binär umwandelt und man dafür nach dem Rest gucken muss und 2tens hab ich erst ein halbes Jahr Ansi C inner Schule und kenne mich noch nicht ganz so gut aus wie ihr alle.
Und genau um "nach dem Rest zu gucken", gibt es den mehrfach erwähnten Modulo-Operator %
Aber danke ich weiss nur nicht wie ich das machen soll mit dem Char array.
Ich würde es so machen:
char value[33]; scanf("%s",value);//liest das komplette Array ein ...
-
Hmm es geht jetzt fast alles ausser das ich das z.b. vergleichen kann.
if (value[1] == 2) { printf("in Value steht eine 2"); }
Das geht leider nicht, das ist aber genau das was ich brauche. Bringt es was wenn ich den char string einzeln in einen int string packe wenn das überhaupt möglich ist.
-
dass ich fmod() erwaehnt hab, das hast du nicht gelesen?
tobi89:
'2'wenn c == '2', dann 2 == c - '0'
-
Das ist mir auch klar das das C Programm sinnlos ist nur es geht halt nicht weil es immer in den Else fall geht. Ich weiss nicht wie man die vergleichen kann. Wie z.b. hier, wenn ich eine 2 eingebe geht er trozdem immer in den else fall.
char value[33]; printf("Zahl eingeben!!"); scanf("%s",value); if (value[0] == 2) { printf("steht eine 2 drin."); } else { printf("steht keine 2 drin"); }
-
weil 2 != '2'
denn 2 ist ne zahl und '2' ist ein zeichen.
... greif dir ein tutorial. nein, hilfe != gratislehrer. tutorials gibts ueberall, und gute. nimm dir eins.
hast du meinen post ueberhaupt gelesen?
ich schreib da 2 == '2' - '0' und du ueberliest das...
-
Tobi89 schrieb:
scanf("%i%i",&bin[0],&bin[1]); <--- der Scanf Befehl geht nicht, weiss halt nicht wie ich die einzelnen Zahlen scannen kann.
dir ist klar, warum es nicht geht, oder? Wie soll scanf wissen, wo die eine Zahl anfängt und wo die andere aufhört?
Nimm man: atoi(3).
c.rackwitz schrieb:
dass ich fmod() erwaehnt hab, das hast du nicht gelesen?
Doch. Wenn man aber nur deinen ersten Beitrag liest, könnte man es auch verstehen, dass man % mit floats anwenden kann.