Есть код: (Все смотреть не обязательно - см. описание проблемы после кода.)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main(){
char codeN[20];
int start, end;
double sprava, K, len, codeNn, ostatok, perenosimoe, cleanChislo, endChislo;
ifstream in("code.in");
in >> codeN;
in >> K;
in.close();
len = strlen(codeN);
codeNn = atoi(codeN);
start = pow(double(10),double(len-1));
end = pow(double(10), double(len));
for (int i = start; i < end; i++){
sprava = len - K;
perenosimoe = int(i / pow(10,sprava));
ostatok =( i / pow(10,sprava) - int(i / pow(10,sprava)) ) * pow(10,sprava);
cleanChislo = ostatok * pow(10,K);
endChislo = cleanChislo + perenosimoe + i;
cout << "Ravny li " << endChislo << " i " << codeNn;
if ( codeNn == endChislo ) {
ofstream out("code.out");
out << i << endl;
out.close();
return 0;
}
}
return 0;
}
Ну так вот. codeNn из файла == 512, а K = 1;
Но это тоже не важно. Важно вот что:
Есть там строчка " cout << "Ravny li " << endChislo << " i " << codeNn; "
При одной из итераций она выводит: " Ravny li 512 i 512 ".
А затем программа нифига не завершается и в файл ничего не записывается. То бишь получается, что эти переменные не равны, хотя только что он их вывел и они явно (512 == 512) равны!
Вот как. Очень жду ответа. Всем заранее спасибо.