Эффективна ли данная защита от ввода посторонних символов и букв - C (СИ)
Формулировка задачи:
Здравствуйте! В общем, я написал программу для решения следующей задачи: Заранее спасибо.
Определите по номеру года, является или нет этот год високосным. Указание: год считается високосным, если номер этого года делится нацело на 4, за исключением тех, которые делятся нацело на 100 и не делятся на 400
. Нужно также было сделать защиту (запрет на ввод посторонних символов и букв). Вроде сделал. Но, по-моему она какая-то корявая. Скажите, пожалуйста,эффективна ли эта защита
? И ещё, программа работает нормально. Но почему-то,если ввести любой год, оканчивающийся чётным числом
,то программа сразу закрывается
. Не подскажете,из-за чего это
? Вот код:#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
int year;
setlocale(LC_ALL, "rus");
do
{
fflush(stdin);
printf("Введите год: ");
scanf("%d",&year);
if (year<0)
{
printf("Некорректный ввод! Повторите ещё раз: ");
}
} while (year<0);
if(year%4==0)
{
if(year%100==0&&year%400!=0)
{
printf("Этот год НЕ является високосным. \n");
return(0);
}
printf("Этот год является високосным. \n");
return(1);
}
printf("Этот год НЕ яляется високосным. \n");
_getch();
return 0;
system("pause");
}Решение задачи: «Эффективна ли данная защита от ввода посторонних символов и букв»
textual
Листинг программы
return 0;
getch();
system("pause");