IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Си, попадание точки
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Код

#include<stdio.h>
#include<math.h>
void main(void)
{
float n,x,y;
  printf("Введите х и у через пробел  \n");
  scanf("%d",x);
  scanf("%d",y);
  n=x*x+y*y;
  if (sqrt(n)<1 && y>0 && y<0.6)
  printf("попадает\n");
  else
  if (sqrt(n)>1 || y<0 || y>0.6  )
   printf("не попадает\n");
   else
     printf("на границе\n");
  
}

по условиям вроде бы все прально но почему точка все время попадает в область?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






  scanf("%d",x);
scanf("%d",y);

? blink.gif

Может, лучше
  scanf("%f",&x);
scanf("%f",&y);
сделать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


конечно это я забыл но проблема не в этом (& поставил ничего не изменилось)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ты на формат смотрел? Как X, Y описываются, и как ты их вводишь? Целые с Вещественными не путай!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


да спасибо почти сработало
теперь если допустим ввести 0 0.6 пишет "не попадает" вместо "на границе"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






А ты уверен, что 0.6 после того, как ты его ввел, в переменную записалось тоже как 0.6, а не как 0.600001, например? Прогони программу пошагово, или хотя бы сделай сразу после ввода данных
printf("Введено: X = %15.12f, Y = %15.12f\n", x, y);

чтобы проверить...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Теперь этой прогой занимаюсь я ! КОНКРЕТНЫЙ БАКЛАН-ПРОГРАМИСТ Александр !
По ходу дела он действительно заместо 0.6 сохранил 0.60000001 !!! И чё делать ??? Кто мне может помочь ? Товарищи суровые програмисты сделайте пжалуйста! С меня пиво, ну или на крайняк просто спасибо скажу!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.12.2024 23:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name