Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/140: Рейтинг темы: голосов - 140, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
1

Cуществует более одного экземпляра перегруженная функция pow

30.04.2012, 11:25. Показов 26667. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При написание программы про решение задачи, выдает ошибку связанную с функцией pow. Подскажите как ее исправить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#include<math.h>
int main() {
    float x, y, z, a, b;
    printf("enter x, a, b;\n");
    scanf("%f%f%f" , &x, &a, &b);
    y= log (((x-3)+4) /(x*x+12));
    float m= pow(y+5,1.0/3);
    z=(m+a) / (sin (b)+m);
    printf("y=%f z=%f", y, z);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2012, 11:25
Ответы с готовыми решениями:

Функция sqrt: существует более одного экземпляра. Функция перегруженная
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; using namespace std; int main(){...

Существует более одного экземпляра перегруженная функция "proccess", соответствующего списку аргументов
Как вызвать вторую функцию? void proccess(const std::string&amp; filePath, const std::string&amp; type =...

Отсутствуют экземпляры перегруженная функция "pow", соответствующие списку аргументов типы аргументов: (<unknown-type>, double)
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; int main() { double x, y, z, a, b;...

Функция для поиска максимального числа в матрице, которое встречается более одного раза
Функция для поиска максимального числа в матрице, которое встречается более одного раза. ...

10
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2012, 11:36 2
Какой компилятор используете? Тут все работает нормально.
0
127 / 125 / 16
Регистрация: 03.07.2011
Сообщений: 354
30.04.2012, 11:36 3
а что за ошибка?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2012, 11:37 4
Цитата Сообщение от ZoRT Посмотреть сообщение
а что за ошибка?
Ошибка указана в названии темы
0
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
30.04.2012, 11:38  [ТС] 5
использую VS 2010,
Ошибка 1 error C2666: pow: для 6 перегрузок есть подобные преобразования
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
30.04.2012, 11:44 6
У 10 студии проблемы с перегрузкой функций, сам ушел из-за этого с нее. Если есть возможность, то скачайте лучше бесплатную IDE, например NetBeans или Eclipse, и компилятор MinGW к ней.
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
30.04.2012, 11:59 7
Проблема из-за того, что первый аргумент функции pow имеет тип float, а второй double. Если тип сделать одинаковым, то проблема должна уйти.
Вариантов несколько:
C++
1
2
3
4
float m = pow((double)y+5,1.0/3);
float m = pow(y+5,(float)1.0/3);
float m = pow(y+5,1.0f/3);
float m = powf(y+5,1.0/3);
Можно ещё так
C++
1
float m = std::pow<float>(y+5,1.0/3);
но тогда стоит подключать такой заголовок
C++
1
#include <cmath>
0
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
30.04.2012, 14:11  [ТС] 8
Всё спасибо заработало!!! А еще вопросик мне там нужно найти ln, а я написал log, правильно ли я зделал?
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
30.04.2012, 14:13 9
Да, log это натуральный логарифм.
0
3 / 3 / 0
Регистрация: 15.10.2015
Сообщений: 60
24.01.2017, 00:27 10
чтобы не создавать похожую тему, задам здесь, вопрос той же перегрузки, элементарная функция:

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
using namespace std;
 
void round(double &i);
 
int main()
{   
    double i = 5.2;
    
    cout << i << endl;
    round(i);                        // тут ругается
    cout << i << endl;
    
    system("pause");
}
 
void round(double &i)
{
    double celoe, desyat;
 
    desyat = modf(i, &celoe);
    if (desyat > 0.5)
        i = celoe + 1.0;
    else 
        i = celoe; 
}
никак не могу понять, ведь аргумент передается double, все значения double, что не учитываю? И почему тот же код но с указателями (с соответствующими корректировками) все работает правильно?
Причем это ответ из Шилдта, сверил раз 15 - сначала сделал сам с указателями, потом решил сделать как в учебнике по ссылочным параметрам и началась головомойка.
p.s. пробовал по аналогии с pow повтыкать подряд (double), но либо не все варианты перепробовал, либо смысл до конца не понимаю.
MSVS 2015

p.p.s. при наведении на функцию есть заметка, что есть +4 перегрузок, как их можно посмотреть?
0
5 / 5 / 6
Регистрация: 02.02.2014
Сообщений: 31
24.01.2017, 02:38 11
Назовите свою функцию по другому, к примеру f_round и все заработает. Компилятор ругается, так как в стандартной библиотеке уже есть функция round. Все вышесказанное мое предположение и, возможно есть еще какие то нюансы.

В будущем все же придерживайтесь правил и создавайте новые темы.
1
24.01.2017, 02:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2017, 02:38
Помогаю со студенческими работами здесь

Перегруженная функция
Где неправильно #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt;...

Перегруженная функция
есть два задания. 1) - посчитать количество чисел в самой длинной возрастающей последовательности...

Перегруженная функция
1) Напишите перегружены функции: a) для массива целых чисел находит максимальный элемент; б) для...

Перегруженная функция
Помогите преобразовать функцию в перегруженную... Бьюсь уже хрен знает сколько.... Условия: В...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru