Shadow
Знаток
(403)
17 лет назад
Если знаешь Си разбирайся. А то объяснять лениво.
#include <stdio.h>
void main(void)
{
float x; //Переменная для значений координаты Х
float y; //Переменная для значений координаты Y
float a; //Переменная для значений A
char c;
int fields; //Переменная для значений возвращаемых функцией scanf
printf ("\n Программа для проверки попадания точки в область");
do
{
do
{
printf ("\n Введите координату X: ");
fflush(stdin); //Очистка буфера
fields = scanf ("%f", &x);
if (fields == 0)//Проверка возвращаемого значения функции scanf
printf("\n Date Error. Input again.");
}
while(fields == 0);
do
{
printf ("\n Введите координату Y: ");
fflush(stdin);
fields = scanf ("%f", &y);
if (fields == 0)
printf("\n Date Error. Input again.");
}
while(fields == 0);
do
{
printf ("\n Введите A: ");
fflush(stdin);
fields = scanf ("%f", &a);
if (fields == 0)
printf("\n Date Error. Input again.");
}
while(fields == 0);
//+++
printf ("\n %1.15f", x );
printf ("\n %1.15f", y );
printf ("\n 1 %1.15f", (x*x + y*y) );
printf ("\n 2 %1.15f", 0.8f*0.8f + 0.6f*0.6f );
printf ("\n 3 %d", (int)((x * x) + (y * y)) == 1 );
//+++
if ( ((x*x + y*y) < 1.0) && (y > a)) //Проверка попадает ли точка в область
printf ("\n Точка попадает в область");
else
if (((x * x) + (y * y) == 1.0 && y >= a) || ((x * x) + (y * y) <= 1.0 && y == a)) //Проверка попадает ли точка на границу области
printf ("\n Точка лежит на границе области");
else
printf ("\n Точка не попадает в область");
printf ("\n Для повтора нажмите Y ");
fflush(stdin);
scanf ("%c", &c);
}
while (c == 'Y' || c == 'y');
}