Во-первых, ваша программа неверно оформлена - используйте тег [code].
Во-вторых, ваша переменная rez не инициализируется перед входом в цикл, из-за этого все чудеса.
В-третьих, ваш метод половинного деления реализован неверно - он не сходится.
Вот пример правильной реализации:
Код:
double isqrt(double k)
{
if(k==1)
{
return(1);
}
double a=0;
double b=k;
while(true)
{
const double mid=((b-a)/2.0)+a;
if(b-a<=0.0001)
{
return(mid);
}
const double fc=mid-k/mid;
if(fc==0)
{
return(mid);
}
if(fc>0)
{
b=mid;
}
else
{
a=mid;
}
}
}