Я довольно новичок в этой теме и не мог узнать причину: иногда программа работает, иногда нет (после того, как задал вопрос, она просто не хочет принимать в моих ответах, чем я могу писать столько, сколько я хочу, это не отвечает, просто перечислить номера, я tiped в)Итерация Ньютона Рафсона в ловушке бесконечного цикла
#include <stdio.h>
float abszolut (float szam)
{
float abszoluterteke;
if (szam >=0)
abszoluterteke = szam;
else
abszoluterteke = -szam;
return abszoluterteke;
}
float negyzetgyok (float szam)
{
float pontossag = 0.000001;
float tipp = 1;
if (szam <0)
{
printf ("Megszakítás elfogadva! \nKöszönjük, hogy programunkat választotta!\n");
return -1;
}
else
{while (abszolut (tipp*tipp-szam) >= pontossag)
tipp = (szam/tipp + tipp)/2;
return tipp;
}
}
int main (void)
{
float alap, eredmeny;
for (;;)
{
printf ("Melyik számnak szeretnéd meghatározni a négyzetgyökét ilyen módszerrel?\n");
scanf ("%f", &alap);
eredmeny = negyzetgyok (alap);
if (eredmeny == -1)
return 1;
else
printf ("A(z) %f négyzetgyöke megfelelő közelítéssel: %f\n", alap, eredmeny);
}
return 0;
}
Основная цель состояла в том, чтобы спросить в номере, узнать его квадратный корень, используя метод Ньютона-Рафсона, если его значение положительное и прервать процесс, если его отрицательный. –
Можете ли вы предоставить данные, для которых работает программа, и данные, для которых она не работает? – VolAnd
Он работает от 1 до 41 и не работает ни для чего выше 41 – Taimour