Archiv verlassen und diese Seite im Standarddesign anzeigen : kleine Frage zu C Programmierung
Hallo,
ich möchte zwei Zahlen teilen und mit dem Ganzzahlanteil weiterrechnen.
Wenn ich eine Variable a als integer deklariere und dann a den Wert 9/4 zuweise, bekommt a dann immer den Ganzzahlantei zugewiesen (hier also 2)?
Oder brauche ich dazu eine spezielle Funktion?
Und wie kann man den Rest Berechnen? fmod scheint hier nicht die richtige Funktion zu sein.
Danke!
The Ripper
23-10-2002, 19:11
zur verdeutlichung folgender code-ausschnitt:
int erg0 = 9 / 5;
double erg1 = 9 / 5;
double erg2 = 9.0 / 5;
int erg3 = 9.0 / 5;
printf("int = 9 / 5 ergibt: %d\n", erg0);
printf("double = 9 / 5 ergibt: %f\n", erg1);
printf("double = 9.0 / 5 ergibt: %f\n", erg2);
printf("int = 9.0 / 5 ergibt: %d\n", erg3);
die ausgabe dieses programms sieht so aus:
int = 9 / 5 ergibt: 1
double = 9 / 5 ergibt: 1.000000
double = 9.0 / 5 ergibt: 1.800000
int = 9.0 / 5 ergibt: 1
daraus schliessen wir:
- int / int gibt immer den ganzzahligen anteil der division zurück (es wird nicht gerundet)
- die zuweisung an eine variable vom typ double ändert daran nichts
- double / int gibt das ergebnis als dezimalbruch zurück (9.0 ist eine zahl vom typ double)
- wird das ergebnis dieser division einer variablen vom typ int zugewiesen, enthält diese den ganzzahligen anteil, dabei wird nicht gerundet
an den rest einer division kommt du übrigens auch mit dem modulo-operator:
int rest = 9 % 5; /* rest = 4 */
Ja, aber warum probierst du es nicht einfach aus?
--
Sean Bergmann
0x15@azeroth.org
http://www.lang.c-qnet.org
Hi The Ripper,
Danke für die ausführliche Erklärung!
Manchmal ist es einfacher als man denkt... :rolleyes:
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.