Δημοσιεύτηκε: 14 Μαρ 2012, 19:17
από migf1
Μια που το (ξανα)έφερε η κουβέντα για τον έλεγχο του αν μια τιμή βρίσκεται ή όχι μέσα σε ένα μικρό, προκαθορισμένο εύρος συνεχόμενων τιμών, ορίστε ένα ωραίο τρικ...

Μορφοποιημένος Κώδικας: Επιλογή όλων
...
enum ColorCode { INVCOLOR = -1, BLACK, RED, GREEN, BLUE, YELLOW, BROWN, MAXCOLORS }; /* INV means invalid */
#define VALID_COLOR(clr) ( (clr) > INVCOLOR && (clr) < MAXCOLORS )
...
int main( void )
{
enum ColorCode color = INVCOLOR;

printf( "Give color-code (%d - %d): ", INVCOLOR+1, MAXCOLORS-1 );
do
mySCANF( "%d", &color );
while ( !VALID_COLOR(color) );
...
return 0;
}

Μπορείτε μελλοντικά να προσθαφαιρέσετε όσους άλλους κωδικούς χρωμάτων θέλετε ανάμεσα στο INVCOLOR και το MAXCOLORS στον enumerator (CYAN, MAGENTA, WHITE, κλπ, κλπ) χωρίς να επηρεαστεί ο υπόλοιπος κώδικας ;)