Не выводит результат - C (СИ)

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

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

Имеется вот такой код :
Листинг программы
  1. #include "stdafx.h"
  2. #include "iostream"
  3. #include "math.h"
  4. #include "locale.h"
  5. float LengthSubrange(float X0, float Y0 , float X, float Y)
  6. {
  7. float res, R1,R2;
  8. res = sqrt((X0 - X)*(X0 - X) + (Y0 - Y)*(Y0 - Y));
  9. if ((res >= R1) && (res <= R2))
  10. printf("Tochka prinadlezhit");
  11. else
  12. printf("Tochka ne prinadlizhit");
  13. return res;
  14.  
  15. }
  16. int _tmain(int argc, _TCHAR* argv[])
  17. {
  18. setlocale(LC_ALL, "rus");
  19. float X0 = 0,Y, X, Y0 = 0 , K ,R1, R2;
  20. printf("Введите координату Х точки М : "); scanf("%f", &X);
  21. printf("Введите координату У точки М : "); scanf("%f", &Y);
  22. printf("Введите внутренний радиус R1 : "); scanf("%f", &R1);
  23. printf("Введите внутренний радиус R2>R1 : "); scanf("%f", &R2);
  24. K = LengthSubrange(X0, Y0, X, Y);
  25. system("pause");
  26.  
  27. return 0;
  28. }
Определить, принадлежит ли точка M (x, y) кольцу с центром в начале координат, внешним радиусом R1, и внутренним радиусом R2 (R1 > R2). Причем используя функцию пользователя. Я ее описала. Но почему-то,когда я ввожу все необходимые данные,программа вылетает. Прошу указать мне на мои ошибки и помочь решить их.

Решение задачи: «Не выводит результат»

textual
Листинг программы
  1. #include <math.h>
  2. #include <locale.h>
  3. #include <stdio.h>
  4.  
  5.  
  6. float LengthSubrange(float X0, float Y0 , float X, float Y, float r1, float r2 )
  7. {
  8.     float res ;
  9.     res = sqrt((X0 - X)*(X0 - X) + (Y0 - Y)*(Y0 - Y));
  10.     if ((res >= r1) && (res <= r2))
  11.         printf("Tochka prinadlezhit");
  12.     else
  13.         printf("Tochka ne prinadlizhit");
  14.     return res;
  15.  
  16.  
  17. }
  18.  
  19. int main( void )
  20. {
  21.     setlocale(LC_ALL, "rus");
  22.     float  X0 = 0,Y, X,  Y0 = 0 , K ,R1, R2;
  23.     printf("Введите координату Х точки М : ");
  24.     scanf("%f", &X);
  25.     printf("Введите координату У точки М : ");
  26.     scanf("%f", &Y);
  27.     printf("Введите внутренний радиус R1 : ");
  28.     scanf("%f", &R1);
  29.     printf("Введите внутренний радиус R2>R1 : ");
  30.     scanf("%f", &R2);
  31.     K = LengthSubrange(X0, Y0, X, Y, R1, R2 );
  32.  
  33.     puts( "" );
  34.  
  35.     return 0;
  36. }

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

  1. В функции LengthSubrange происходит вычисление длины отрезка между двумя точками в формате радиусов окружностей, на которых расположены эти точки.
  2. Если длина отрезка находится в пределах r1 и r2, то выводится сообщение Tochka prinadlezhit.
  3. Если длина отрезка выходит за пределы r1 и r2, то выводится сообщение Tochka ne prinadlizhit.
  4. Функция возвращает значение длины отрезка.
  5. В функции main устанавливается русская локаль с помощью setlocale.
  6. Пользователю предлагается ввести координаты точки М и радиусы окружностей.
  7. Значения переменных X0, Y0, X, Y, R1, R2 инициализируются нулевыми значениями.
  8. Пользователю предлагается ввести координату Х точки М.
  9. Пользователю предлагается ввести координату У точки М.
  10. Пользователю предлагается ввести внутренний радиус R1.
  11. Пользователю предлагается ввести внутренний радиус R2>R1.
  12. Значение функции LengthSubrange сохраняется в переменной K.
  13. Выводится сообщение и символ новой строки.
  14. Программа завершается с возвратом 0.

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы