Verbesserung des Programms
Lassen Sie uns unser Programm verbessern, um es benutzerfreundlicher und robuster zu machen. Wir fügen eine Schleife hinzu, damit der Benutzer mehrere Zahlen prüfen kann, ohne das Programm neu starten zu müssen, und wir fügen auch Eingabevalidierung hinzu.
Aktualisieren Sie Ihre main.c
-Datei mit dem folgenden Code:
#include <stdio.h>
#include <string.h>
#include <ctype.h> // For isdigit function
int main() {
char number[20];
int flag, i;
char choice;
do {
flag = 0; // Reset flag for each iteration
// Prompt the user to enter a number
printf("\nEnter a number: ");
scanf("%s", number);
// Input validation - check if the input contains only digits and at most one decimal point
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;
}
// Check if the number is integer or float
for(i = 0; number[i] != '\0'; i++) {
if(number[i] == '.') {
flag = 1;
break;
}
}
// Display the result
if(flag) {
printf("The entered number is a floating point number.\n");
} else {
printf("The entered number is an integer number.\n");
}
// Ask if the user wants to continue
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;
}
Diese verbesserte Version enthält:
- Eine
do-while
-Schleife, die es dem Benutzer ermöglicht, mehrere Zahlen zu prüfen.
- Eingabevalidierung, um sicherzustellen, dass die Eingabe nur Ziffern und maximal einen Dezimalpunkt enthält.
- Eine benutzerfreundlichere Schnittstelle mit klareren Aufforderungen und Rückmeldungen.
Kompilieren und führen Sie diese verbesserte Version aus:
cd ~/project
gcc main.c -o main
./main
Testen Sie es mit verschiedenen Eingaben, einschließlich:
- Ganzzahlen wie
42
- Fließkommazahlen wie
3.14
- Ungültige Eingaben wie
abc
oder 1.2.3
Das Programm sollte alle diese Fälle angemessen behandeln und es Ihnen ermöglichen, fortzufahren und Zahlen zu prüfen, bis Sie sich dafür entscheiden, es zu beenden.