Я написал этот код, и первый раз результат цикла равен 99. Почему результат 99, когда он должен быть 100?
#include <iostream>
#include<math.h>
using namespace std;
int main ()
{
int skt = 0;
int sk[3];
int nsk = 3;
sk[0]=1;
sk[1]=2;
sk[2]=8;
for (int i=0; i<nsk; i++)
{
skt = skt + (sk[i]*pow(10.0,nsk-i-1));
cout <<" "<<skt<<endl;
}
}
результат этого кода
99
119
127
, но если я использую библиотеку cmath, это правильный ответ
#include <iostream>
#include<cmath>
using namespace std;
int main ()
{
int skt = 0;
int sk[3];
int nsk = 3;
sk[0]=1;
sk[1]=2;
sk[2]=8;
for (int i=0; i<nsk; i++)
{
skt = skt + (sk[i]*pow(10.0,nsk-i-1));
cout <<" "<<skt<<endl;
}
}
результат этого кода
100
120
128
Кто-нибудь может объяснить, почему?
pow
, вы должны прочитать: stackoverflow.com/ вопросы/588004/ - person NathanOliver   schedule 28.09.2016pow
, если все, что вам нужно, это степени 10. Простая таблица поиска будет намного быстрее, чем вызов функцииpow
. - person PaulMcKenzie   schedule 28.09.2016pow
, переключателей компилятора, версий компилятора и т. д. Но если вам нужна согласованность, прекратите использоватьpow
и используйте простую таблицу, как это видно - person PaulMcKenzie   schedule 28.09.2016