Δημοσιεύτηκε: 16 Μαρ 2012, 15:18
Παρεμπιπτόντως, ακόμα και στους κώδικες κάνεις τα εύκολα δύσκολα ρε συ 
Κι αν θες γενική υλοποίηση, ανεξάρτητη από εύρος...
Και με έλεγχο & απόρριψη άκυρης εισόδου (0 digits, όταν π.χ. σου δώσει γράμματα)...
EDIT: Συνέπτυξα τα 3 ποστς σε 1.
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include <stdio.h>
int main( void )
{
int num;
printf( "Give a 3-digit number: " );
scanf("%d", &num);
if ( num < -999 || num > 999 )
puts( "*** error: out of range!" );
else if ( num > -10 && num < 10 )
puts( "1 digit" );
else if ( num > -100 && num < 100 )
puts( "2 digits" );
else
puts( "3 digits" );
return 0;
}
Κι αν θες γενική υλοποίηση, ανεξάρτητη από εύρος...
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include <stdio.h>
int main( void )
{
int num, count = 1;
printf( "Give a number: " );
scanf("%d", &num);
while ( 0 != (num = num/10) )
count++;
printf( "%d digit(s)\n", count );
return 0;
}
Και με έλεγχο & απόρριψη άκυρης εισόδου (0 digits, όταν π.χ. σου δώσει γράμματα)...
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include <stdio.h>
#include <stdbool.h>
int main( void )
{
int num, count = 1;
bool isvalid;
printf( "Give a number: " );
isvalid = ( 1 == scanf("%d", &num) );
while ( 0 != (num = num/10) )
count++;
printf( "%d digit(s)\n", isvalid ? count : 0 );
return 0;
}
EDIT: Συνέπτυξα τα 3 ποστς σε 1.