Улучшение программы
Давайте улучшим нашу программу, чтобы сделать ее более удобной для пользователя и надежнее. Мы добавим цикл, чтобы пользователь мог проверять несколько чисел без перезапуска программы, а также добавим валидацию ввода.
Обновите файл main.c
следующим кодом:
#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;
}
В этом улучшенном варианте программы реализованы следующие функции:
- Цикл
do-while
, который позволяет пользователю проверять несколько чисел.
- Валидация ввода, чтобы убедиться, что ввод содержит только цифры и не более одной десятичной точки.
- Более удобный интерфейс с более понятными приглашениями и обратной связью.
Скомпилируйте и запустите этот улучшенный вариант:
cd ~/project
gcc main.c -o main
./main
Протестируйте программу с различными входными данными, включая:
- Целые числа, такие как
42
- Дробные числа, такие как
3.14
- Недопустимые входные данные, такие как
abc
или 1.2.3
Программа должна корректно обрабатывать все эти случаи и позволить вам продолжать проверку чисел, пока вы не решите выйти.