1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <stdio.h> int main () { float n; /* Dichiarazione delle variabili */ printf("\n Inserisci un numero:\t"); /* Richiedo un numero qualsiasi */ scanf("%f",&n); n=n-(int)n; /* Effettuazione di un cast esplicito */ if (n==0) /* Condizione */ printf("\nNumero intero\n "); /* Stampa la stringa se la condizione è vera */ else printf("\nNumero in virgola mobile\n"); /* Stampa la stringa se la condizione è falsa */ printf("\n\n\n\t\t PoWeReD By T4n|n0 Ru|3z\n\n\n"); return 0; }
Refactorings
No refactoring yet !
Eineki
February 20, 2008, February 20, 2008 22:04, permalink
it: Il tuo codice distrugge il numero preso in input:
en: your code destroys the input a slight variation:
First Variation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <stdio.h> #define IS_INTEGER_VALUE(x) ((int)(x)==x) int main () { float n; /* Dichiarazione delle variabili */ printf("\n Inserisci un numero:\t"); /* Richiedo un numero qualsiasi */ scanf("%f",&n); if (IS_INTEGER_VALUE(n)) { printf("\nNumero intero\n "); /* Stampa la stringa se la condizione è vera */ } else { printf("\nNumero in virgola mobile\n"); /* Stampa la stringa se la condizione è falsa */ } return 0; }
Second Variation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <stdio.h> #include <math.h> #define IS_INTEGER_VALUE(x) ((x)==floor(x)) int main () { float n; /* Dichiarazione delle variabili */ printf("\n Inserisci un numero:\t"); /* Richiedo un numero qualsiasi */ scanf("%f",&n); if (IS_INTEGER_VALUE(n)) { printf("\nNumero intero\n "); /* Stampa la stringa se la condizione è vera */ } else { printf("\nNumero in virgola mobile\n"); /* Stampa la stringa se la condizione è falsa */ } return 0; }
Dato un numero,restituisce se esso è un intero o in virgola mobile.