Не выводит результат - C (СИ)
Формулировка задачи:
Имеется вот такой код :
Определить, принадлежит ли точка M (x, y) кольцу с центром в начале координат,
внешним радиусом R1, и внутренним радиусом R2 (R1 > R2).
Причем используя функцию пользователя. Я ее описала. Но почему-то,когда я ввожу все необходимые данные,программа вылетает. Прошу указать мне на мои ошибки и помочь решить их.
Листинг программы
- #include "stdafx.h"
- #include "iostream"
- #include "math.h"
- #include "locale.h"
- float LengthSubrange(float X0, float Y0 , float X, float Y)
- {
- float res, R1,R2;
- res = sqrt((X0 - X)*(X0 - X) + (Y0 - Y)*(Y0 - Y));
- if ((res >= R1) && (res <= R2))
- printf("Tochka prinadlezhit");
- else
- printf("Tochka ne prinadlizhit");
- return res;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- setlocale(LC_ALL, "rus");
- float X0 = 0,Y, X, Y0 = 0 , K ,R1, R2;
- printf("Введите координату Х точки М : "); scanf("%f", &X);
- printf("Введите координату У точки М : "); scanf("%f", &Y);
- printf("Введите внутренний радиус R1 : "); scanf("%f", &R1);
- printf("Введите внутренний радиус R2>R1 : "); scanf("%f", &R2);
- K = LengthSubrange(X0, Y0, X, Y);
- system("pause");
- return 0;
- }
Решение задачи: «Не выводит результат»
textual
Листинг программы
- #include <math.h>
- #include <locale.h>
- #include <stdio.h>
- float LengthSubrange(float X0, float Y0 , float X, float Y, float r1, float r2 )
- {
- float res ;
- res = sqrt((X0 - X)*(X0 - X) + (Y0 - Y)*(Y0 - Y));
- if ((res >= r1) && (res <= r2))
- printf("Tochka prinadlezhit");
- else
- printf("Tochka ne prinadlizhit");
- return res;
- }
- int main( void )
- {
- setlocale(LC_ALL, "rus");
- float X0 = 0,Y, X, Y0 = 0 , K ,R1, R2;
- printf("Введите координату Х точки М : ");
- scanf("%f", &X);
- printf("Введите координату У точки М : ");
- scanf("%f", &Y);
- printf("Введите внутренний радиус R1 : ");
- scanf("%f", &R1);
- printf("Введите внутренний радиус R2>R1 : ");
- scanf("%f", &R2);
- K = LengthSubrange(X0, Y0, X, Y, R1, R2 );
- puts( "" );
- return 0;
- }
Объяснение кода листинга программы
- В функции
LengthSubrange
происходит вычисление длины отрезка между двумя точками в формате радиусов окружностей, на которых расположены эти точки. - Если длина отрезка находится в пределах
r1
иr2
, то выводится сообщениеTochka prinadlezhit
. - Если длина отрезка выходит за пределы
r1
иr2
, то выводится сообщениеTochka ne prinadlizhit
. - Функция возвращает значение длины отрезка.
- В функции
main
устанавливается русская локаль с помощьюsetlocale
. - Пользователю предлагается ввести координаты точки М и радиусы окружностей.
- Значения переменных
X0
,Y0
,X
,Y
,R1
,R2
инициализируются нулевыми значениями. - Пользователю предлагается ввести координату Х точки М.
- Пользователю предлагается ввести координату У точки М.
- Пользователю предлагается ввести внутренний радиус R1.
- Пользователю предлагается ввести внутренний радиус R2>R1.
- Значение функции
LengthSubrange
сохраняется в переменнойK
. - Выводится сообщение и символ новой строки.
- Программа завершается с возвратом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д