Продолжать ввод, пока не получит точку, принадлежащую графику - C (СИ)
Формулировка задачи:
Есть программа, которая определяет принадлежность точки графику
Сам код:
Программа работает, но хотелось бы сделать так, чтобы при вводе координат точки (2 числа), не принадлежащих графику, программа просила бы пользователя вновь и вновь вводить числа до тех пор пока не получит точку принадлежащую графику. На 2 картинке видно что после ввода неверных чисел программа запрашивает у меня верные только 1 раз и потом даже при неверных числах выдает их за правильные. каким образом это можно осуществить или дайте что нибудь почитать по этому поводу.
надеюсь что понятно объяснил то, что хочу осуществить.
#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; }
Решение задачи: «Продолжать ввод, пока не получит точку, принадлежащую графику»
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"); }
Объяснение кода листинга программы
- Переменная z инициализируется значением false.
- Условие цикла for требует, чтобы z оставалось равным false для продолжения цикла.
- Пользователю предлагается ввести два числа, которые будут присвоены переменным x и y.
- С помощью оператора scanf числа считываются и присваиваются переменным x и y.
- Значение переменной z обновляется с помощью условного выражения.
- Условие проверяет, принадлежит ли точка с координатами (x, y) фигуре по определенным правилам.
- Если точка принадлежит фигуре, выводится сообщение
Точка с координатами (x, y) лежит внутри фигуры
. - Если точка не принадлежит фигуре, выводится сообщение
Точка не принадлежит фигуре
. - Цикл продолжается, пока пользователь не введет точку, принадлежащую фигуре.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д