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

Ругается на sqrt - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
T@Rak0t
 Аватар для T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
08.01.2010, 22:02     Ругается на sqrt #1
Компилятор ругается на функцию Sqrt()

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
using namespace std;
 
int main(void)
{
    setlocale (LC_ALL, ".1251");
    int a;
    double y;
 
    cout<<"Введие значение а ";
    cin>>a;
    y=(a*a+10)/sqrt(a*a+1);
    
    cout<<"y="<<a<<"\n";
    return 0;
}
C++
1
g:\программирование\с++\упражения 1 части\8\8\8.cpp(13) : error C2668: 'sqrt' : ambiguous call to overloaded function
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
08.01.2010, 22:04     Ругается на sqrt #2
шас посмотрим)
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
08.01.2010, 22:07     Ругается на sqrt #3
C++
1
2
        double a;
        double y;
T@Rak0t
 Аватар для T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
08.01.2010, 22:09  [ТС]     Ругается на sqrt #4
Цитата Сообщение от Darky Посмотреть сообщение
C++
1
2
        double a;
        double y;
Помогло
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.01.2010, 23:07     Ругается на sqrt #5
можно ещё sqrt((double) (a*a+1))
T@Rak0t
 Аватар для T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
08.01.2010, 23:52  [ТС]     Ругается на sqrt #6
Цитата Сообщение от accept Посмотреть сообщение
можно ещё sqrt((double) (a*a+1))
тоесть (как я понимаю) функция sqrt "кушает" лишь дробные типы?
patriot2008
 Аватар для patriot2008
70 / 70 / 4
Регистрация: 04.12.2008
Сообщений: 463
09.01.2010, 00:05     Ругается на sqrt #7
Функция sqrt принимает типы в качестве аргументов float, double, long double. И возвращает соответственные.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.01.2010, 00:16     Ругается на sqrt #8
Цитата Сообщение от T@Rak0t
тоесть (как я понимаю) функция sqrt "кушает" лишь дробные типы?
в C++ есть возможность перегрузки функций
это когда несколько функций имеют одинаковое имя, а какую из них вызывать определяется по тому, что в неё передаётся (тип аргумента в вызове)
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
09.01.2010, 00:26     Ругается на sqrt #9
Собственно все это в строке ошибки и написано:
error C2668: 'sqrt' : ambiguous call to overloaded function
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 08:22     Ругается на sqrt
Еще ссылки по теме:

Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) C++
Дано натуральное число n. Вычислить sqrt(2+ sqrt(5 + sqrt(7...)) C++
C++ Вычислить y=sqrt(1+sqrt(4+sqrt(9+.+sqrt(36+sqrt(49)

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,126
Записей в блоге: 26
09.01.2010, 08:22     Ругается на sqrt #10
С точки зрения Си++ функции распознаются не только по имени, но и по прототипу. При подключении cmath у тебя подключаются описания трёх функций:

C
1
2
3
float sqrt (float);
double sqrt (double);
long double sqrt (long  double);
Сие по научному называется "перегрузка функций" (function overload). В случае, когда компилятор видит несколько перегруженных функций, он пытается по типу передаваемых параметров понять, какую из функций реально надо вызывать. В твоём случае параметр имел тип int, а потому в этом случае непонятно, какой из трёх функций отдавать предпочтение. Именно эта мысль кроется за фразой "ambiguous call to overloaded function"
Yandex
Объявления
09.01.2010, 08:22     Ругается на sqrt
Ответ Создать тему
Опции темы

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