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

Ошибка при компиляции студио2008 года - C++

Восстановить пароль Регистрация
 
fors117
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 92
26.02.2013, 23:50     Ошибка при компиляции студио2008 года #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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const long double  s=1.0,m=60.0,ch=3600.0,d=86400.0,mes=2592000.0,g=94608000.0,v=9460800000.0;
void main()
{long double    n1,n2,n3,n4,n5,n6,n7;
 n1=(log10(s))/log10(2);
 n2=(log10(m))/log10(2);
 n3=log10(ch)/log10(2);
 n4=(log10(d))/log10(2);
 n5=(log10(mes))/log10(2);
 n6=(log10(g))/log10(2);
 n7=(log10(v))/log10(2);
 
 cout<<n1<<endl;
 cout<<n2<<endl;
 cout<<n3<<endl;
 cout<<n4<<endl;
 cout<<n5<<endl;
 cout<<n6<<endl;
 cout<<n7<<endl;
 system("pause");


вот какая ошибка, прошу помощи по её устранению


Код
1>c:\users\максим\documents\visual studio 2008\projects\rabotayproshu\rabotayproshu\rabotayproshu.cpp(8) : error C2668: log10: неоднозначный вызов перегруженной функции
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(569): может быть 'long double log10(long double)'
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(521): или       'float log10(float)'
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(122): или       'double log10(double)'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 23:50     Ошибка при компиляции студио2008 года
Посмотрите здесь:

Ошибка при компиляции C++
C++ Ошибка при компиляции
ошибка при компиляции C++
Ошибка при компиляции C++
Ошибка при компиляции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2013, 00:01     Ошибка при компиляции студио2008 года #2
Скорее всего, причина в этом: log10(2). Напишите: log10(2.0).
fors117
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 92
27.02.2013, 00:03  [ТС]     Ошибка при компиляции студио2008 года #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Скорее всего, причина в этом: log10(2). Напишите: log10(2.0).
теперь вот это)

1>c:\users\максим\documents\visual studio 2008\projects\rabotayproshu\rabotayproshu\rabotayproshu.cpp(10) : error C2086: long double n1: переопределение
1> c:\users\максим\documents\visual studio 2008\projects\rabotayproshu\rabotayproshu\rabotayproshu.cpp(9): см. объявление 'n1'
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2013, 00:14     Ошибка при компиляции студио2008 года #4
Проверьте синтаксис, может где-что не так написали. Переопределения я там не вижу.

Добавлено через 2 минуты
Этот код ошибки не выдаёт:
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
29
#include <iostream>
#include <cmath>
using namespace std;
 
const long double  s=1.0,m=60.0,ch=3600.0,d=86400.0,mes=2592000.0,g=94608000.0,v=9460800000.0;
 
int main()
{
    
 long double    n1,n2,n3,n4,n5,n6,n7;
 n1=(log10(s))/log10(2.0);
 n2=(log10(m))/log10(2.0);
 n3=log10(ch)/log10(2.0);
 n4=(log10(d))/log10(2.0);
 n5=(log10(mes))/log10(2.0);
 n6=(log10(g))/log10(2.0);
 n7=(log10(v))/log10(2.0);
 
 cout<<n1<<endl;
 cout<<n2<<endl;
 cout<<n3<<endl;
 cout<<n4<<endl;
 cout<<n5<<endl;
 cout<<n6<<endl;
 cout<<n7<<endl;
 
 system("pause");
 return 0;
}
fors117
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 92
27.02.2013, 01:16  [ТС]     Ошибка при компиляции студио2008 года #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Проверьте синтаксис, может где-что не так написали. Переопределения я там не вижу.

Добавлено через 2 минуты
Этот код ошибки не выдаёт:
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
29
#include <iostream>
#include <cmath>
using namespace std;
 
const long double  s=1.0,m=60.0,ch=3600.0,d=86400.0,mes=2592000.0,g=94608000.0,v=9460800000.0;
 
int main()
{
    
 long double    n1,n2,n3,n4,n5,n6,n7;
 n1=(log10(s))/log10(2.0);
 n2=(log10(m))/log10(2.0);
 n3=log10(ch)/log10(2.0);
 n4=(log10(d))/log10(2.0);
 n5=(log10(mes))/log10(2.0);
 n6=(log10(g))/log10(2.0);
 n7=(log10(v))/log10(2.0);
 
 cout<<n1<<endl;
 cout<<n2<<endl;
 cout<<n3<<endl;
 cout<<n4<<endl;
 cout<<n5<<endl;
 cout<<n6<<endl;
 cout<<n7<<endl;
 
 system("pause");
 return 0;
}
сделал до этого так же) спасибо всё же)
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6166 / 2895 / 282
Регистрация: 04.12.2011
Сообщений: 7,695
Записей в блоге: 3
27.02.2013, 01:16     Ошибка при компиляции студио2008 года #6
Цитата Сообщение от fors117 Посмотреть сообщение
вот какая ошибка, прошу помощи по её устранению
Код
1>c:\users\максим\documents\visual studio 2008\projects\rabotayproshu\rabotayproshu\rabotayproshu.cpp(8) : error C2668: log10: неоднозначный вызов перегруженной функции
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(569): может быть 'long double log10(long double)'
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(521): или       'float log10(float)'
1>        c:\program files\microsoft visual studio 9.0\vc\include\math.h(122): или       'double log10(double)'
не передавайте литеральную константу без суффикса, а лучше создайте переменную типа long double и посчитайте в неё логарифм 2-ки.
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const long double  s=1.0,m=60.0,ch=3600.0,d=86400.0,mes=2592000.0,g=94608000.0,v=9460800000.0;
void main(){
long double    n1,n2,n3,n4,n5,n6,n7;
long double logTwo = log10((long double)2);
 n1 = (log10(s))/logTwo;
 n2 = (log10(m))/logTwo;
 n3 = log10(ch)/logTwo;
 n4 = (log10(d))/logTwo;
 n5 = (log10(mes))/logTwo;
 n6 = (log10(g))/logTwo;
 n7 = (log10(v))/logTwo;
 cout<<n1<<endl;
 cout<<n2<<endl;
 cout<<n3<<endl;
 cout<<n4<<endl;
 cout<<n5<<endl;
 cout<<n6<<endl;
 cout<<n7<<endl;
 system("pause");
}
Yandex
Объявления
27.02.2013, 01:16     Ошибка при компиляции студио2008 года
Ответ Создать тему
Опции темы

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