Λοιπον δοκιμασα την άσκηση 1 στην σελ. 95
για θετικους ειναι της πλακας νταξει.... για αυτο ειπα να της προσθέσω και αρνητικους....
πχ αν δινεις -999 να σου λεει πως έδωσες τριψηφιο.... λοιπον στους θετικους ο παρακατω κωδικας δουλευει μια χαρα
αν και εχει το προβλημα οτι αμα δωσεις πχ 022 το λαμβανει υποψιν σαν 22 και λεει οτι εχει 2 ψηφια.... ενω θα ηθελα και αυτο
να το διορθωσω.... Παρολαυτα στους αρνητικους εχει μεγαλο προβλημα... ας πουμε δινεις οποιονδηποτε αρνητικο και σου λεει οτι
εχει 2 ψηφια....
-
Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include<stdio.h>
int main(void)
{
int number;
printf(" Give the number: ");
scanf("%d" , &number);
if(number>=0 && number<10)
printf("The number %d has one digit " , number);
else if(number<100)
printf("The number %d has two digits " , number);
else if(number<1000)
printf(" The number %d has three digits " , number);
else if(number<0 && number>-9)
printf(" The number %d has one digit " , number);
else if(number<=-10 && number>= -99)
printf(" The number %d has two digits " , number);
else if(number<= - 100 && number >= -999 )
printf(" The number %d has three digits " , number);
else
printf(" Over than three digits ");
return 0;
}
Δεν νομιζω να εχω κανει καποιο λαθος στην διάταξη των πραγματικων αριθμών :/
- Κώδικας: Επιλογή όλων
number > -9
σημαινει -8 , -7 , -6...... - 1.
- Κώδικας: Επιλογή όλων
number<=-10 && number>= -99
σημαινει -11 , -12 ...... -97... -98
(η σειρα που τα βάζω ειναι λαθος γιατι οι μεγαλυτεροι συνηθως πανε απο αριστερα στα δεξια και το -97 δεν ειναι μεγαλυτερος του -11 πχ)
edit: Η scanf δημιουργει το προβλημα γιατι διαβάζει και το πρόσημο.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]