Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.86
birdusk
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
#1

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

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

При написание программы про решение задачи, выдает ошибку связанную с функцией 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2012, 11:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Cуществует более одного экземпляра перегруженная функция pow (C++):

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

Перегруженная функция - C++
У меня тут задача я её правильно написал но почему то визуалка говорит что перегруженная функция. #include &lt;iostream&gt; #include &lt;cmath&gt; ...

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

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

Перегруженная функция - C++
есть два задания. 1) - посчитать количество чисел в самой длинной возрастающей последовательности например, массив a={7, 2, 4, 48, 54,...

Перегруженная функция - C++
Написать перегруженную функцию, которая возвращает значение в зависимости от набора формальных параметров: x+x/2 Z={ ...

10
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.04.2012, 11:36 #2
Какой компилятор используете? Тут все работает нормально.
0
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
30.04.2012, 11:36 #3
а что за ошибка?
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.04.2012, 11:37 #4
Цитата Сообщение от ZoRT Посмотреть сообщение
а что за ошибка?
Ошибка указана в названии темы
0
birdusk
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
30.04.2012, 11:38  [ТС] #5
использую VS 2010,
Ошибка 1 error C2666: pow: для 6 перегрузок есть подобные преобразования
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.04.2012, 11:44 #6
У 10 студии проблемы с перегрузкой функций, сам ушел из-за этого с нее. Если есть возможность, то скачайте лучше бесплатную IDE, например NetBeans или Eclipse, и компилятор MinGW к ней.
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
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
birdusk
0 / 0 / 0
Регистрация: 30.04.2012
Сообщений: 3
30.04.2012, 14:11  [ТС] #8
Всё спасибо заработало!!! А еще вопросик мне там нужно найти ln, а я написал log, правильно ли я зделал?
0
grizlik78
Эксперт С++
1971 / 1464 / 122
Регистрация: 29.05.2011
Сообщений: 3,029
30.04.2012, 14:13 #9
Да, log это натуральный логарифм.
0
badvik
3 / 3 / 0
Регистрация: 15.10.2015
Сообщений: 60
Завершенные тесты: 1
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
immortal21
5 / 5 / 1
Регистрация: 02.02.2014
Сообщений: 31
24.01.2017, 02:38 #11
Назовите свою функцию по другому, к примеру f_round и все заработает. Компилятор ругается, так как в стандартной библиотеке уже есть функция round. Все вышесказанное мое предположение и, возможно есть еще какие то нюансы.

В будущем все же придерживайтесь правил и создавайте новые темы.
1
24.01.2017, 02:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2017, 02:38
Привет! Вот еще темы с ответами:

Функция для поиска максимального числа в матрице, которое встречается более одного раза - C++
Функция для поиска максимального числа в матрице, которое встречается более одного раза. Спасибо!!! Добавлено через 1 час 12...

Перегруженная функция sqrt - C++
начал писать программу,а тут такая фигня перегруженная функция sqrt,в чем фокус не пойму я еще ничего не написал толком а уже перегруз ...

Перегруженная функция Signum(x) - C++
Напишите программу, в которой бы использовалась перегруженная функция Signum(x). Эта функция должна возвращать +1, если число x, является...

Перегруженная функция вывода >> - C++
Есть участок кода: #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.