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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
#1

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

08.01.2010, 22:02. Просмотров 1450. Ответов 9
Метки нет (Все метки)

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

Цикл: Для числа N вычислить значение следующего выражения: sqrt((1) + sqrt((2) + ... + sqrt(2 * N))) - C++
Как это решить? sqrt((1)+sqrt((2)+..+sqrt(2n)))

Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых) - C++
Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых),с помощью iostream, stdio.С помощью цикла for або while

Дано натуральное число n. Вычислить sqrt(2+ sqrt(5 + sqrt(7...)) - C++
Дано натуральное число n.Вычислить sqrt(2+ sqrt(5 + sqrt(7...)). Под корнями располагается n первых простых чисел. Написал как находить...

Рекурсия: вычислить значение выражения sqrt(1+sqrt(2+...sqrt(n))) - C++
Вычислить с помощью рекурсии и без нее - y(n) = sqrt(1+sqrt(2+...sqrt(n).. Как выполнить задание с помощью рекурсии? #include...

Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) - C++
Не подскажите как расписать рекурсивно формулу? Спасибо!

[C++ Error] Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt'. Что это за ошибка??? - C++
Когда я испльзую функцию sqrt() компилятор выводит: Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt' Что это значит???

9
Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
08.01.2010, 22:04 #2
шас посмотрим)
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
08.01.2010, 22:07 #3
C++
1
2
        double a;
        double y;
1
T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
08.01.2010, 22:09  [ТС] #4
Цитата Сообщение от Darky Посмотреть сообщение
C++
1
2
        double a;
        double y;
Помогло
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.01.2010, 23:07 #5
можно ещё sqrt((double) (a*a+1))
0
T@Rak0t
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 43
08.01.2010, 23:52  [ТС] #6
Цитата Сообщение от accept Посмотреть сообщение
можно ещё sqrt((double) (a*a+1))
тоесть (как я понимаю) функция sqrt "кушает" лишь дробные типы?
0
patriot2008
72 / 72 / 4
Регистрация: 04.12.2008
Сообщений: 463
09.01.2010, 00:05 #7
Функция sqrt принимает типы в качестве аргументов float, double, long double. И возвращает соответственные.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.01.2010, 00:16 #8
Цитата Сообщение от T@Rak0t
тоесть (как я понимаю) функция sqrt "кушает" лишь дробные типы?
в C++ есть возможность перегрузки функций
это когда несколько функций имеют одинаковое имя, а какую из них вызывать определяется по тому, что в неё передаётся (тип аргумента в вызове)
0
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
09.01.2010, 00:26 #9
Собственно все это в строке ошибки и написано:
error C2668: 'sqrt' : ambiguous call to overloaded function
0
Evg
Эксперт CАвтор FAQ
17944 / 6175 / 411
Регистрация: 30.03.2009
Сообщений: 16,950
Записей в блоге: 27
09.01.2010, 08:22 #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"
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 08:22
Привет! Вот еще темы с ответами:

Вычислить y=sqrt(1+sqrt(4+sqrt(9+.+sqrt(36+sqrt(49) - C++
Помогите пожалуйста с решением данной задачи. \sqrt{1+\sqrt{4+\sqrt{9+...+\sqrt{36+\sqrt{49}}}}} Не совсем понимаю как решать... ...

Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).) - C++
Здравствуйте! Вычислить: sqrt(3+sqrt(6+...+sqrt(3*(n-1)+sqrt(3*n)...))) Правильно ли делаю вычисления на NetBeans IDE 8.02?...

Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) - C++
Задали написать программу на С++ которая высчитывает S=sqrt(1+sqrt(2+sqrt(3+...+sqrt(n)))) . Нашла похожу тему, но там программа на...

Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn)))) - C++
Люди добрые! Помогите пожалуйста. Даны натуральные числа n и k. Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn))))


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
09.01.2010, 08:22
Ответ Создать тему
Опции темы

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