Aprimorando o Programa
Vamos aprimorar nosso programa para torná-lo mais amigável e robusto. Adicionaremos um loop para que o usuário possa verificar vários números sem reiniciar o programa, e também adicionaremos validação de entrada.
Atualize seu arquivo main.c com o seguinte código:
#include <stdio.h>
#include <string.h>
#include <ctype.h> // Para a função isdigit
int main() {
char number[20];
int flag, i;
char choice;
do {
flag = 0; // Reinicia a flag para cada iteração
// Solicita ao usuário que insira um número
printf("\nDigite um número: ");
scanf("%s", number);
// Validação da entrada - verifica se a entrada contém apenas dígitos e no máximo um ponto decimal
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("Entrada inválida! Por favor, insira um número válido.\n");
continue;
}
// Verifica se o número é inteiro ou float
for(i = 0; number[i] != '\0'; i++) {
if(number[i] == '.') {
flag = 1;
break;
}
}
// Exibe o resultado
if(flag) {
printf("O número inserido é um número de ponto flutuante.\n");
} else {
printf("O número inserido é um número inteiro.\n");
}
// Pergunta se o usuário deseja continuar
printf("\nDeseja verificar outro número? (s/n): ");
scanf(" %c", &choice);
} while(choice == 'y' || choice == 'Y');
printf("\nObrigado por usar o programa!\n");
return 0;
}
Esta versão aprimorada inclui:
- Um loop
do-while que permite ao usuário verificar vários números.
- Validação de entrada para garantir que a entrada contenha apenas dígitos e no máximo um ponto decimal.
- Uma interface mais amigável com prompts e feedback mais claros.
Compile e execute esta versão aprimorada:
cd ~/project
gcc main.c -o main
./main
Teste-o com várias entradas, incluindo:
- Números inteiros como
42
- Números de ponto flutuante como
3.14
- Entradas inválidas como
abc ou 1.2.3
O programa deve lidar adequadamente com todos esses casos e permitir que você continue verificando números até que você escolha sair.