Разрешить ввод данных только типа Float - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
void main ()
{
clrscr();
float x,y;
printf ("Vvedite koordinatu X tochki E\n");
scanf ("%f",&x);
if ((x<=0)||(x>=0))
{
printf ("Vvedite koordinatu Y tochki E\n");
scanf ("%f",&y);
if ((y<=0)||(y>=0))
{
if ((y<=2*x+3)&&(y<=(-x))&&(y>=0))
printf("Tockha prinadlejit figure ABCD");
else
{
if ((y<=0)&&(y<=(2*x)+3)&&(y>=x/3-1/3))
printf ("Tockha prinadlejit figure ABCD");
else printf("Tockha ne prinadlejit figure ABCD");
}
}
else printf ("Oshibka vvoda!");
}
else printf ("Oshibka vvoda!");
getch();
}Решение задачи: «Разрешить ввод данных только типа Float»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <float.h>
void main ()
{
clrscr();
float x=FLT_MAX,y=FLT_MAX;
printf ("Vvedite koordinatu X tochki E\n");
scanf ("%f",&x);
if ((x!=FLT_MAX))
{
printf ("Vvedite koordinatu Y tochki E\n");
scanf ("%f",&y);
if ((y!=FLT_MAX))
{
if ((y<=2*x+3)&&(y<=(-x))&&(y>=0))
printf("Tockha prinadlejit figure ABCD");
else
{
if ((y<=0)&&(y<=(2*x)+3)&&(y>=x/3-1/3))
printf ("Tockha prinadlejit figure ABCD");
else printf("Tockha ne prinadlejit figure ABCD");
}
}
else printf ("Oshibka vvoda!");
}
else printf ("Oshibka vvoda!");
getch();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
, , . - Задаём начальные значения переменных x и y равными максимальному значению типа float (FLT_MAX).
- Выводим сообщение и призыв к вводу координаты X.
- Считываем значение координаты X с помощью функции scanf и сохраняем его в переменной x.
- Проверяем, что введенное значение не равно FLT_MAX (то есть не является начальным).
- Если условие выполняется, то выводим сообщение и призыв к вводу координаты Y.
- Считываем значение координаты Y с помощью функции scanf и сохраняем его в переменной y.
- Проверяем, что введенное значение не равно FLT_MAX (то есть не является начальным).
- Если условие выполняется, то проверяем, что значение y находится в определенном диапазоне: (y<=2*x+3)&&(y<=(-x))&&(y>=0).
- Если условие выполняется, то выводим сообщение
Tockha prinadlejit figure ABCD. - Если условие не выполняется, то проверяем, что значение y находится в диапазоне (y<=0)&&(y<=(2*x)+3)&&(y>=x/3-1/3).
- Если условие выполняется, то выводим сообщение
Tockha prinadlejit figure ABCD. - Если условие не выполняется, то выводим сообщение
Tockha ne prinadlejit figure ABCD. - Если в процессе проверки значение y оказывается меньше нуля, то выводим сообщение
Oshibka vvoda!. - Если в процессе проверки значение y оказывается больше или равно 2*x+3, то выводим сообщение
Oshibka vvoda!. - Если в процессе проверки значение y оказывается меньше x/3-1/3, то выводим сообщение
Oshibka vvoda!. - Если значение x или y было прочитано некорректно, то выводим сообщение
Oshibka vvoda!. - Используем функцию getch() для приостановки выполнения программы и ожидания нажатия клавиши.
- Объявляем функцию main() как точку входа в программу.
- Все действия программы выполняются в рамках переменной типа int, которая не имеет имени и не видна за пределами функции main().