Amélioration du programme
Améliorons notre programme pour le rendre plus convivial et robuste. Nous allons ajouter une boucle afin que l'utilisateur puisse vérifier plusieurs nombres sans redémarrer le programme, et nous allons également ajouter une validation des entrées.
Mettez à jour votre fichier main.c
avec le code suivant :
#include <stdio.h>
#include <string.h>
#include <ctype.h> // Pour la fonction isdigit
int main() {
char number[20];
int flag, i;
char choice;
do {
flag = 0; // Réinitialiser le drapeau pour chaque itération
// Inviter l'utilisateur à entrer un nombre
printf("\nEnter a number: ");
scanf("%s", number);
// Validation de l'entrée - vérifier si l'entrée ne contient que des chiffres et au plus un point décimal
int valid = 1;
int decimal_count = 0;
for(i = 0; number[i] != '\0'; i++) {
if(number[i] == '.') {
decimal_count++;
if(decimal_count > 1) {
valid = 0;
break;
}
} else if(!isdigit(number[i])) {
valid = 0;
break;
}
}
if(!valid) {
printf("Invalid input! Please enter a valid number.\n");
continue;
}
// Vérifier si le nombre est un entier ou un nombre à virgule flottante
for(i = 0; number[i] != '\0'; i++) {
if(number[i] == '.') {
flag = 1;
break;
}
}
// Afficher le résultat
if(flag) {
printf("The entered number is a floating point number.\n");
} else {
printf("The entered number is an integer number.\n");
}
// Demander à l'utilisateur s'il souhaite continuer
printf("\nDo you want to check another number? (y/n): ");
scanf(" %c", &choice);
} while(choice == 'y' || choice == 'Y');
printf("\nThank you for using the program!\n");
return 0;
}
Cette version améliorée inclut :
- Une boucle
do-while
qui permet à l'utilisateur de vérifier plusieurs nombres.
- Une validation des entrées pour s'assurer que l'entrée ne contient que des chiffres et au plus un point décimal.
- Une interface plus conviviale avec des invites et des retours d'information plus clairs.
Compilez et exécutez cette version améliorée :
cd ~/project
gcc main.c -o main
./main
Testez-le avec diverses entrées, notamment :
- Des nombres entiers comme
42
- Des nombres à virgule flottante comme
3.14
- Des entrées invalides comme
abc
ou 1.2.3
Le programme devrait gérer correctement tous ces cas et vous permettre de continuer à vérifier des nombres jusqu'à ce que vous choisissiez de quitter.