Um programa melhor para avaliar a raiz quadrada de um número
Eu sou iniciante na linguagem de programação C e me foi dada a tarefa de escrever um programa que calcula a raiz quadrada de um número natural sem usarmath.h
ou qualquer outra função de biblioteca, excetostdio.h
.
Veja com quem trabalhamosint
por toda parte, portanto, para números não quadrados, encontramos o piso da raiz quadrada de n. Agora eu criei esse programa, mas ele funciona apenas para quadrados perfeitos, mas para não quadrados não funciona. Estou citando aqui, espero que haja alguma maneira de modificá-lo.
#include <stdio.h>
main()
{
int a;
scanf("%d", &a);
int s = 1, l = a, mid = 0;
while(s < l)
{
mid=(s + l)/2;
if((mid * mid) == a)
{
break;
}
else if ((mid * mid) < a)
{
s = mid + 1;
}
else
{
l = mid;
}
}
printf("%d", mid);
}
Muito obrigado por toda a sua ajuda e, por favor, corrija-me sempre que puder.
Editado: Desculpe pela inconveniência.