Форум программистов, компьютерный форум CyberForum.ru

Расстояние между двумя точками, double или int? - C++

Восстановить пароль Регистрация
 
go100gi
1 / 1 / 0
Регистрация: 31.07.2013
Сообщений: 30
Завершенные тесты: 1
21.11.2014, 13:38     Расстояние между двумя точками, double или int? #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
int distance(int, int, int, int);
int main()
{
    int x1 = 4;
    int x2 = 7;
    int y1 = -5;
    int y2 = -2;
    int result = distance(x1, x2, y1, y2);
    cout << "=" << result;
    return _getch();
}
 
int distance(int x1, int x2, int y1, int y2)
{
    return sqrt(pow(x2-x1, 2) + pow(y2-y1, 2));
}
формула:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{(x_2-x_2)^2+(y_2-y_1)^2}

с такими данными result должно возвращать 5, а возвращает 4.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 13:38     Расстояние между двумя точками, double или int?
Посмотрите здесь:

Вычислить расстояние между двумя точками с координатами х1, у1 и х2, у2. C++
Вычислить расстояние между двумя точками на плоскости C++
C++ Расстояние между двумя точками
C++ Написать программу с функцией, вычисляющей расстояние между двумя точками на плоскости
Вычислить расстояние между двумя точками на плоскости C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4301 / 3722 / 1255
Регистрация: 14.04.2014
Сообщений: 14,556
21.11.2014, 13:42     Расстояние между двумя точками, double или int? #2
C++
1
2
3
4
5
6
double distance(int x1, int x2, int y1, int y2)
{
    return sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
}
 
double result = distance(x1, x2, y1, y2);
D_in_practice
 Аватар для D_in_practice
330 / 330 / 159
Регистрация: 02.10.2014
Сообщений: 666
21.11.2014, 13:45     Расстояние между двумя точками, double или int? #3
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{{(4 - 7)}^{2} + {(-5 - (-2))}^{2}} = \sqrt{18} = 4,24264...
Код
(int)4.24264 = 4
C++
1
2
3
4
int distance(int x1, int x2, int y1, int y2)
{
    return ceil(sqrt(pow(x2-x1, 2) + pow(y2-y1, 2)));
}
go100gi
1 / 1 / 0
Регистрация: 31.07.2013
Сообщений: 30
Завершенные тесты: 1
21.11.2014, 13:50  [ТС]     Расстояние между двумя точками, double или int? #4
Цитата Сообщение от nmcf Посмотреть сообщение
Код C++
1
2
3
4
5
6
double distance(int x1, int x2, int y1, int y2)
{
return sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));
}
double result = distance(x1, x2, y1, y2);
тоже самое, 4, если самому считать то 5 выходит.

Добавлено через 3 минуты
Цитата Сообщение от D_in_practice Посмотреть сообщение
Код Code
1
(int)4.24264 = 4

а нет, у меня всё правильно, просто считал я не с y = -2 а с y = -1
nmcf
4301 / 3722 / 1255
Регистрация: 14.04.2014
Сообщений: 14,556
21.11.2014, 14:28     Расстояние между двумя точками, double или int? #5
Что тоже самое? Там вообще целое число не может получиться.
Гоблин-инженер
113 / 113 / 32
Регистрация: 18.09.2014
Сообщений: 337
21.11.2014, 14:32     Расстояние между двумя точками, double или int? #6
go100gi, на будущее, иногда при делении целых чисел получается не дробный, а целый результат. Тогда неявно переводите целое число в вещественное:
C++
1
2
3
double Xdiv2(int x) {
    return (double)x/2.0;
}
go100gi
1 / 1 / 0
Регистрация: 31.07.2013
Сообщений: 30
Завершенные тесты: 1
21.11.2014, 14:48  [ТС]     Расстояние между двумя точками, double или int? #7
Цитата Сообщение от nmcf Посмотреть сообщение
Что тоже самое? Там вообще целое число не может получиться.
ты написал тоже самое что и я но в другом виде, изменил только тип переменных, да я и не говорил что мне нужна точность.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 15:58     Расстояние между двумя точками, double или int?
Еще ссылки по теме:

Определите расстояние между двумя введенными точками C++
C++ Расстояние между двумя точками через классы
C++ Расстояние между двумя точками

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
nmcf
4301 / 3722 / 1255
Регистрация: 14.04.2014
Сообщений: 14,556
21.11.2014, 15:58     Расстояние между двумя точками, double или int? #8
А ты не думал, что тип важен? Как у тебя выходит 5, если даже с округлением 4?
Yandex
Объявления
21.11.2014, 15:58     Расстояние между двумя точками, double или int?
Ответ Создать тему
Опции темы

Текущее время: 19:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru