Я пытаюсь написать программу на C, которая запрашивает ввод числа, а затем определяет, является ли оно простым числом.Если ввод представляет собой не числовой символ или строку, он выводит сообщение INVALID INPUT.Мне удалось создать код, который может определить, является ли число простым, а также не числовым, но когда я пытаюсь их объединить, оно не работает.Например, если я введу нечисловое значение, оно выведет правильное сообщение, но когда я введу числовое значение, ничего не произойдет, и я не уверен, почему.Кто-нибудь может помочь?
#include <stdio.h>
#include <string.h>
#define FALSE 0
#define TRUE 1
int numeric( char *string )
{
int i, valid;
valid = TRUE;
if (string[i] < '0' || string[i] >'9')
valid = FALSE;
return valid;
}
void main()
{
char number[5];
printf("Please enter a decimal number>");
gets( number );
if (numeric(number) == TRUE)
{
int n, i, a = 0;
scanf_s("%d", &n);
for (i = 2; i <= n / 2; ++i)
{
if (n%i == 0)
{
a = 1;
break;
}
}
if (n == 1)
{
printf("1 isn't a prime number.");
}
else
{
if (a == 0)
printf("number entered is a prime number");
else
printf("number entered is not a prime number");
}
}
else
printf("INVALID INPUT \n");
}