Δημοσιεύτηκε: 16 Μαρ 2012, 15:18
από migf1
Παρεμπιπτόντως, ακόμα και στους κώδικες κάνεις τα εύκολα δύσκολα ρε συ :(

Μορφοποιημένος Κώδικας: Επιλογή όλων
#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.