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

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

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

почему выдает ошибку - C++

09.04.2013, 20:58. Просмотров 313. Ответов 1
Метки нет (Все метки)

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
26
27
28
#include <iostream>
#include <cmath>
 
int main()
{
    const int SIZE=10;
    int a[SIZE+1]={0,1}, b[SIZE+1]={0,1};
    unsigned int factorial[SIZE+1]={0,1};
    unsigned int n;
    double sum=0;
 
    for (int i=2; i<=SIZE; i++)
    {
        a[i] = 3*b[i-1] + 2*a[i-1];
        b[i] = 2*a[i-1] + b[i-1];
        factorial[i] = i*factorial[i-1];
    }
 
    std::cout << "Enter n : ";
    std::cin >> n;
 
    for (unsigned int i=1; i<=n; i++)
        sum = sum + double(std::pow(2.0, i)) / ((1+std::pow(a[i], 2.0)+std::pow(b[i],2)) * factorial[i]);
 
    std::cout << sum << std::endl;
 
    return 0;
}
выдает ошибку error C2668: pow: неоднозначный вызов перегруженной функции

по этой строчке
C++
1
 sum = sum + double(std::pow(2.0, i)) / ((1+std::pow(a[i], 2.0)+std::pow(b[i],2)) * factorial[i]);
подчеркивает std

Добавлено через 28 секунд
не могу понять данную ошибку

Добавлено через 4 часа 19 минут
помогите мне
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 20:58     почему выдает ошибку
Посмотрите здесь:

Почему выдает ошибку - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &quot;stdafx.h&quot; #include &quot;windows.h&quot; void...

Почему выдает ошибку? - C++
#include&lt;iostream.h&gt; #include&lt;iomanip.h&gt; void main() { float a,e,sum=0.0; int i,j; cout&lt;&lt;&quot;Vvod massiva a:\n&quot;; ...

Почему не выдает ошибку? - C++
здравствуйте, я недавно начал осваивать с++. Когда я игрался с типами данных, то возник такой вопрос: если какой нибудь переменной...

Почему выдает ошибку ? - C++
#include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; #include &lt;string&gt; using std::string; class Invoice { ...

почему выдает ошибку - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; #include &lt;string.h&gt; using namespace std; struct MARSH { char...

Почему выдает ошибку - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main() { double a; char c; scanf(&quot;%c&quot;, &amp;c); printf(&quot;%c\n&quot;, c); ...

Подскажите почему выдает ошибку? - C++
#include &lt;iostream&gt; using namespace std; int main(){ int a,b,c,x1,x2,dx; cout&lt;&lt; &quot;Inter a=&quot;; cin &gt;&gt; a; cout&lt;&lt; &quot;Inter b=&quot;;...

почему выдает ошибку: ctrcmp? - C++
# include&lt;iostream&gt; # include&lt;conio.h&gt; # include&lt;string&gt; # include&lt;stdio.h&gt; #include &lt;stdlib.h&gt; using namespace std; struct...

почему link выдает ошибку? - C++
Добрый вечер. Программа компилируется,но линк выдает ошибку... что в программе не так? #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Почему компилятор выдает ошибку? - C++
#include &lt;stdio.h&gt; #include &lt;clocale&gt; typedef enum{ COUNT, POUNDS, PINTS }unit_of_measure; typedef union{ short count;...

выдает ошибку E2061-почему - C++
вот часть кода Matrix&lt;U&gt;&amp; mtr; unsigned int i; Helper(Matrix&lt;U&gt;&amp; _mc, unsigned int _i): mtr(_mc), i(_i)...

Выдает ошибку, не понимаю почему! - C++
Эта строка подчеркивает красным: if(strcmp(str,&quot;sin&quot;)==0) res=sin(res); #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 21:35     почему выдает ошибку #2
easyfrag,
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
#include <iostream>
#include<math.h>
int main()
{
    const int SIZE=10;
    int a[SIZE+1]={0,1}, b[SIZE+1]={0,1};
    unsigned int factorial[SIZE+1]={0,1};
    unsigned int n;
    double sum=0;
 
    for (int i=2; i<=SIZE; i++)
    {
        a[i] = 3*b[i-1] + 2*a[i-1];
        b[i] = 2*a[i-1] + b[i-1];
        factorial[i] = i*factorial[i-1];
    }
    std::cout << "Enter n : ";
    std::cin >> n;
 
    for (unsigned int i=1; i<=n; i++)
        sum = sum + double(pow(2.0, (double)i)) / ((1+std::pow(a[i], 2.0)+pow(b[i],(double)2)) * factorial[i]);
    std::cout << sum << std::endl;
    system("pause");
    return 0;
}
Так как вы передаете в функцию pow(double,unsigned),нужно unsigned преобразовать явно в double так:
C++
1
pow(double,(double)i);
Такой прототип pow(double,double) прописан в заголовочном файле math.h std там не надо писать.=)
Ответ Создать тему
Опции темы

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