bnvdarklord Δημοσ. 25 Νοεμβρίου 2010 Δημοσ. 25 Νοεμβρίου 2010 Εγραψα αυτο printf("%f", 10/3.0); και βγήκε 3.333
jmallen3 Δημοσ. 25 Νοεμβρίου 2010 Μέλος Δημοσ. 25 Νοεμβρίου 2010 Δοκίμασε με "long int" ή "unsigned int" και με "long long int" δεν σλλσξε κστι κσι πσλι οτσν εβσλσ το 4 δισεκατομυρια.
pinball_elf Δημοσ. 25 Νοεμβρίου 2010 Δημοσ. 25 Νοεμβρίου 2010 δεν σλλσξε κστι κσι πσλι οτσν εβσλσ το 4 δισεκατομυρια. Φταίει και η scanf, διότι διαβάζεις απο τον χρήστη μόνο ακέραιους 32-bit. Τα 4 δις δεν χωράνε σε 32-bit ακέραιο. Δήλωσε τον D σαν long int ή long long int, και στην scanf χρησιμοποίησε "%ld" ή "%Ld" αντίστοιχα. Όπως σου λέει και ο MitsakosGR.
jmallen3 Δημοσ. 25 Νοεμβρίου 2010 Μέλος Δημοσ. 25 Νοεμβρίου 2010 δηλαδη λετε να ειναι ετσι? >#include <stdio.h> #include <stdlib.h> int main (void) { int E; long long int D; float L; printf ("Dwse to poso se draxmes:\n"); scanf ("%Ld",&D); E=D/340.75; L = ((float)D/340.75 - E)*100; printf ("Oi %Ld draxmes antistoixoyn se:%d Euro kai %.0f lepta\n",D,E,L); system("pause"); return(0); } βγαινουν τελειψς λαθος αποτελεσματα σε ολα ετσι.
bnvdarklord Δημοσ. 25 Νοεμβρίου 2010 Δημοσ. 25 Νοεμβρίου 2010 Βαλε long int το D και οχι long long, και %ld αντι %Ld.
jmallen3 Δημοσ. 25 Νοεμβρίου 2010 Μέλος Δημοσ. 25 Νοεμβρίου 2010 το εκανα και βγαινουν σωστα ολα εκτος απο τα 4000000000 οπως πριν
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.