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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
#1

Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? - C++

13.05.2011, 19:25. Просмотров 663. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cmath>
using namespace std;
struct point
{
    int x,y,z;
};
double dlina(point a,point b)
{
    return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2));    (1)
}
double triangle(double d,double e,double f,double p,double max)
{
    if ((d+e>f) && (d+f>e) && (f+e>d))
        if (p>max) max=p;
    return max;
}
 
int main()
{
    point a[10];
    double d,e,f,p,max=0;
    int n;
    cout<<"введ колич точек";
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cout<<"введите координаты";
        cin>>a[i].x>>a[i].y>>a[i].z;
    }
    for(int i=1;i<=n-2;++i)
        for(int j=i+1;j<=n-1;++j)
            for(int k=j+1;k<=n;++k)
            {
                d=dlina(a[i],a[j]);
                e=dlina(a[j],a[k]);
                f=dlina(a[k],a[i]);
                p=d+e+f;
                triangle(d,e,f,p,max);
            }
    return 0;
}

подскажи пжл,в (1) пишет ошибку - перегруженность pow(int,int) неосуществима-не пойму как исправить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 19:25     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить?
Посмотрите здесь:

Ошибка в программе, адресная арифметика(Компилятор выдает ошибку "Cannot conver int* to int") C++
Хочу написать функцию pow(), ошибка: (5,27):Too few parameters in call to 'step(float,int)' C++
C++ функция pow для int
C++ Ошибка линкера: ссылка на неразрешенный внешний символ "public: int __thiscall stack<int>::pop(void)"
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int
Как исправить? warning C4244: 'initializing' : conversion from 'int' to 'float' [Код внутри] C++
C++ Как понимать int *p3 = new int;
C++ Как конвертировать массив int в int?
C++ Ошибка: "невозможно преобразовать 'int' в 'int [5]'"
Альтернатива pow для int C++
С++ ошибка error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C++
C++ Int vs int fast - как проверить производительность?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт С++
1016 / 795 / 48
Регистрация: 30.04.2011
Сообщений: 1,614
13.05.2011, 19:29     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? #2
1. Массивы нумеруются с 0!!!
2.
C++
1
2
3
4
double dlina(point a,point b)
{
        return sqrt((a.x-b.x)*(a.x-b.x,2)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));    (1)
}
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.05.2011, 19:29     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? #3
C++
1
pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2)
Видимо вместо точек надо использовать индексы массива типа pow(a[x]-b[x],2)
ValeryLaptev
Эксперт С++
1016 / 795 / 48
Регистрация: 30.04.2011
Сообщений: 1,614
13.05.2011, 19:35     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? #4
Цитата Сообщение от mimicria Посмотреть сообщение
C++
1
pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2)
Видимо вместо точек надо использовать индексы массива типа pow(a[x]-b[x],2)
Нет! У него же две point в параметрах!
Ошибка в pow() потому, что в point - целые. Компилятор не знает, какую из функций pow() вызывать: то ли с параметрами floatб ттс параметрами double.
Решений, кроме моего показанного - два:
1. Объявить в структуре не целые, а дробные.
2. Указать преобразование типа первого аргумента в pow()
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
13.05.2011, 19:37     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? #5
Виноват, структуру не заметил, а внизу зацепил массив a[], думал точки в массивах
Yandex
Объявления
13.05.2011, 19:37     Ошибка - перегруженность pow(int,int) неосуществима. Как исправить?
Ответ Создать тему
Опции темы

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