WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Ich und C (http://www.wcm.at/forum/showthread.php?t=54502)

stoni 25.04.2002 21:31

Ich und C
 
Hallo!!

Liebe Leute bilde mir zurzeit ein C im selbststudium zu lernen:confused: ,dementsprechend listig werden meine Hilferufe aussehen:D also bitte nicht gleich schimpfen!
aaaaaaaaaaalso:
int main()
{
int a = 0, x = 13.7603;
printf ("Geben Sie eine Zahl ein: \n");
scanf ("%d", &a);
printf ("%d %d = %d", a, x, a*x);
getch();
}
läuft ansich aaaber wie mache ich das mit dem .7603?
rechnet mir immer nur die 13.

lg Stoni

Stona 25.04.2002 21:33

integer is eine Ganze Zahl.
Den Datentyp den du brauscht ist Double!

double x = 13,7603

stoni 25.04.2002 21:38

hallo
ääääääääh, wohin damit? nur bei 13.7603 oder bei allen integer?
lg Stoni

Stona 25.04.2002 21:46

Mach aus dem "int a" auch ein "double a".

Integer = eine ganze Zahl (ohne Kommastellen)
Double = rationale Zahl

Wenn du einen Integer anlegst und du weist ihm eine Zahl mit Nachkommastellen zu, so ignoriert er die.


und das int main() kanst so lassen, aber dann is es besser wenn am ende der Funktion ein

return(0); schreibst.

oder du schreibst

void main (){


statt int main () .. dann solltest du ein Warning beim compillieren weg haben.

void main () bedeutet, dass die Funktion "main" keinen Wert zurückliefert.

Wenn dich dass jetzt zu sehr verwirrt ignorier das einfach und mach einen double aus den beiden int a und x

Steph 25.04.2002 21:51

oder du schreibst:

flaot a = 0, x = 13.7603;
printf ("Geben Sie eine Zahl ein: \n");
scanf ("%f", &a);
printf ("%f %f = %f", a, x, a*x);
getch();
}

sollte funktionieren!

stoni 25.04.2002 22:03

@FloSteiner, @Steph
eh ganz einfach;) , DANKE hab den Wald vor lauter Bäume nicht mehr gesehen, so verbohrt kann man sein, und ein bischen lesen würde auch helfen!!!!
lg Stoni

Stona 25.04.2002 22:04

no prob.:)

Ulraich 26.04.2002 11:03

Hier noch n kleiner hinweis:
Ganzzahltypen: (signed) int, (signed) short (int), (signed) long
(int), char, unsignend (int), unsigned short (int),
unsigned long (int), unsigned char
Gleitkommatypen: float, double (float), long double (float)
Zeichentyp: char
logischer Typ int (0 ... falsch, ungleich 0 ... wahr)

Wertebereich:

Typ| Byte| von| bis
int, short| 2| -32768| 32767
char| 1| -128| 127
long| 4| -2147483648| 2147483647
unsigned| 2| 0| 65535
unsigned char| 1| 0| 255
unsigned long| 4| 0| 4294967295
float| 4| ±1.5*10-45| ±3.4*10+38
double| 8| ±5.0*10-324| ±1.7*10+308
long double| 10| ±1.9*10-4951| ±1.1*10+4932

Sollte ne Tabelle Darstellen!

Flink 26.04.2002 11:44

@Ulraich: Diese Zuordnung von C-Datentypen zu Byte-Größen ist von Computer zu Computer verschieden!

_m3 26.04.2002 12:01

Ulraich - Du weisst aber schon, dass diese Werte architekturabhängig sind und sich daher ändern können?
Code:

type  pdp11  vax 68000 Cray-2 Unisys Harris    80386
                                1100  H800
char      8    8    8      8      9      8        8
short    16  16 42583 64(32)    18    24    42583
int      16  32 16/32 64(32)    36    24    16/32
long    32  32    32    64    36    48      32
char*    16  32    32    64    72    24  16/32/4
int*    16  32    32 64(24)    72    24  16/32/4
int (*)  16  32    32    64    576    24  16/32/4
(alles in Bit)

Oder die kommenden 64-Bit Maschinen, da ist ein int auch nicht mehr 2 Byte lang. :cool:


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag