Найти ошибку в коде - C (СИ) (70437)
Формулировка задачи:
Подскажите,пожалуйста, в чем ошибка.
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
float x,y,R;
int s;
clrscr();
printf("\n Vvedite x= ");
scanf("%f",&x);
printf("\n Vvedite y= ");
scanf("%f",&y);
printf("\n Vvedite R= ");
scanf("%f",&R);
while (x>0 & y<0)
{
printf("\n Vvedite x= ");
scanf("%f",&x);
printf("\n Vvedite y= ");
scanf("%f",&y);
}
if (x*x+y*y<R*R & y>-(x-R)*(x-R))
{
printf("\n s=1");
}
else if (x*x+y*y<R*R & y<-(x-R)*(x-R))
{
printf("\n s=2");
}
else if(x>R & y>-(x-R)*(x-R))
{
printf("\n s=3");
}
else if (x>R & y<-(x-R)*(x-R))
{
printf("\n s=4");
}
getch();
return 0;
}Решение задачи: «Найти ошибку в коде»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <cstdio>
#include <conio.h>
int main()
{
float x, y, R;
system("cls");
printf("\n Vvedite x= ");
scanf("%f", &x);
printf("\n Vvedite y= ");
scanf("%f", &y);
printf("\n Vvedite R= ");
scanf("%f", &R);
while (x>0 && y<0)
{
printf("\n Vvedite x= ");
scanf("%f", &x);
printf("\n Vvedite y= ");
scanf("%f", &y);
}
if (x*x + y*y<R*R && y>-(x - R)*(x - R))
{
printf("\n s=1");
}
else if (x*x + y*y<R*R && y<-(x - R)*(x - R))
{
printf("\n s=2");
}
else if (x>R && y>-(x - R)*(x - R))
{
printf("\n s=3");
}
else if (x>R && y<-(x - R)*(x - R))
{
printf("\n s=4");
}
_getch();
return 0;
}
Объяснение кода листинга программы
- В начале программы объявляются три переменные типа float: x, y, R.
- Затем с помощью функции system(
cls) очищается экран. - Далее с помощью функции printf выводится приглашение для ввода значений переменных x, y, R.
- Значения переменных x, y, R считываются с помощью функции scanf.
- Затем следует цикл while, который выполняется до тех пор, пока x больше нуля и y меньше нуля.
- Внутри цикла запрашиваются значения переменных x, y, R.
- После выхода из цикла while проверяется условие, и если оно выполняется, то выводится сообщение
s=1. - Если условие не выполняется, то проверяется следующее условие, и если оно выполняется, то выводится сообщение
s=2. - Если и это условие не выполняется, то проверяется следующее условие, и если оно выполняется, то выводится сообщение
s=3. - Если и это условие не выполняется, то проверяется последнее условие, и если оно выполняется, то выводится сообщение
s=4. - В конце программы вызывается функция _getch, которая ожидает нажатия клавиши.
- Возвращаемое значение функции main() равно 0, что означает успешный конец работы программы.