Продолжать ввод, пока не получит точку, принадлежащую графику - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть программа, которая определяет принадлежность точки графику Сам код:
#include <stdio.h>
#include <iostream>
#include <windows.h>
 int main ()
 {
     SetConsoleCP(1251); 
     SetConsoleOutputCP(1251);
 int x,y;
 bool z;
printf ("Введите 2 числа\n");
scanf("%d,%d",&x,&y);
z=y<=1&&x>=0&&x<=2||
(x*x+y*y<1)&&y>=0&&x>=0||
(x*x+y*y<1)&&x<=0&&y<=0||
(x*x+y*y>1)&&x>=0&&x<=2&&y<=0&&y>=-1;
 
 if (z) printf("Точка с координатами (%d,%d)лежит внутри фигуры \n\n");
else 
{
     printf("Точка не принадлежит фигуре. \n\n\n");
     printf ("Попробуй другое число\n");
     scanf("%d\n,\t%d\n",&x,&y);
     printf("Точка с координатами (%d,%d) лежит внутри фигуры\n\n");
}    
 
    system("color 2D");
    system("PAUSE");
    return 0;
}
Программа работает, но хотелось бы сделать так, чтобы при вводе координат точки (2 числа), не принадлежащих графику, программа просила бы пользователя вновь и вновь вводить числа до тех пор пока не получит точку принадлежащую графику. На 2 картинке видно что после ввода неверных чисел программа запрашивает у меня верные только 1 раз и потом даже при неверных числах выдает их за правильные. каким образом это можно осуществить или дайте что нибудь почитать по этому поводу. надеюсь что понятно объяснил то, что хочу осуществить.

Решение задачи: «Продолжать ввод, пока не получит точку, принадлежащую графику»

textual
Листинг программы
for(z=false; z==false; ) {
printf ("Введите 2 числа\n");
scanf("%d,%d",&x,&y);
z=y<=1&&x>=0&&x<=2||
(x*x+y*y<1)&&y>=0&&x>=0||
(x*x+y*y<1)&&x<=0&&y<=0||
(x*x+y*y>1)&&x>=0&&x<=2&&y<=0&&y>=-1;
 
 if (z) printf("Точка с координатами (%d,%d)лежит внутри фигуры \n\n");
else 
     printf("Точка не принадлежит фигуре. \n\n\n");
}

Объяснение кода листинга программы

  1. Переменная z инициализируется значением false.
  2. Условие цикла for требует, чтобы z оставалось равным false для продолжения цикла.
  3. Пользователю предлагается ввести два числа, которые будут присвоены переменным x и y.
  4. С помощью оператора scanf числа считываются и присваиваются переменным x и y.
  5. Значение переменной z обновляется с помощью условного выражения.
  6. Условие проверяет, принадлежит ли точка с координатами (x, y) фигуре по определенным правилам.
  7. Если точка принадлежит фигуре, выводится сообщение Точка с координатами (x, y) лежит внутри фигуры.
  8. Если точка не принадлежит фигуре, выводится сообщение Точка не принадлежит фигуре.
  9. Цикл продолжается, пока пользователь не введет точку, принадлежащую фигуре.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы