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

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

Войти
Регистрация
Восстановить пароль
 
nagoran
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 28
#1

Конфликт стандартной sqrt() и собственной - C++

19.12.2015, 19:43. Просмотров 166. Ответов 4
Метки нет (Все метки)

Разбираюсь с С++ по Шилдту.
Программа уходит в рекурсию и в любом случае не выдает квадратный корень. Что я делаю не так?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
int sqrt(int n);
long sqrt(long n);
double sqrt(double n);
 
int main()
{
    cout << sqrt(36) << "\n/n";
    //cout << sqrt(36L) << "\n/n";
    //cout << sqrt(3.6) << "\n/n";
    int a;
    cin >> a;
    return 0;
}
int sqrt(int n) {
    cout << "iz int: \n";
    double y;
    y = sqrt(n);
    return y;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2015, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конфликт стандартной sqrt() и собственной (C++):

Как выглядит исходный код функции sqrt стандартной библиотеки math.h? - C++
Здраствуйте. Мне надо исходный код функции sqrt стандартной библиотеки math.h . В интернете не могу найти понятный пример, а библиотеки...

Цикл: Для числа 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++
Не подскажите как расписать рекурсивно формулу? Спасибо!

4
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
19.12.2015, 19:46 #2
Цитата Сообщение от nagoran Посмотреть сообщение
int sqrt(int n) {
* * cout << "iz int: \n";
* * double y;
* * y = sqrt(n);
* * return y;
}
нет ветки выхода из рекурсии

Добавлено через 53 секунды
Цитата Сообщение от nagoran Посмотреть сообщение
return y;
она никогда не дойдет до этой строки - так будет постоянно вызывать себя снова


типичная рекурсия
C++
1
2
3
4
5
6
int F()
{
   if(...) 
       return ...;
   F();
}
0
nagoran
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 28
19.12.2015, 19:48  [ТС] #3
но откуда там рекурсия и как ее исправить?
разве этот кусок кода не должен выполняться линейно?
0
_Valera_
487 / 369 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
19.12.2015, 19:49 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от nagoran Посмотреть сообщение
но откуда там рекурсия
вот
Цитата Сообщение от nagoran Посмотреть сообщение
y = sqrt(n);
0
nagoran
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 28
19.12.2015, 20:00  [ТС] #5
тогда я совсем запутался. разве функция int sqrt не вызывается с параметром n=36. т.е. y=sqrt(36); ?

Добавлено через 9 минут
Все, я разобрался. Как я понял - я "заблокировал" стандартную sqrt() своей функцией. Переименовал int sqrt () на int soort (). И все заработало.
0
19.12.2015, 20:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2015, 20:00
Привет! Вот еще темы с ответами:

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

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

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

Вычислить: 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?...


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

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

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