Skip to content

Instantly share code, notes, and snippets.

@ricardobarantini
Last active August 14, 2017 19:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ricardobarantini/4d4ef28cf415d64993d29cf200a798f3 to your computer and use it in GitHub Desktop.
Save ricardobarantini/4d4ef28cf415d64993d29cf200a798f3 to your computer and use it in GitHub Desktop.
Exercício de estrutura de dados
#include <stdio.h>
#include <locale.h>
float calculaRaiz(float inicio, float fim, float valor);
int main() {
setlocale(LC_ALL, "portuguese");
float valor;
float inicio = 0.00;
printf("Informe um valor: ");
scanf("%f", &valor);
printf("A raiz quadrada é: %.4f", calculaRaiz(inicio, valor, valor));
}
float calculaRaiz(float inicio, float fim, float valor) {
float resultado = (inicio + fim) / 2;
int finalizado = 0;
float calculo = resultado * resultado;
float erro = 0.0001;
if (calculo == valor || (calculo + erro) == valor || (calculo - erro) == valor) {
finalizado = 1;
} else if (calculo > valor || (calculo + erro) > valor || (calculo - erro) > valor) {
calculaRaiz(inicio, resultado, valor);
} else if (calculo < valor || (calculo + erro) < valor || (calculo - erro) < valor) {
calculaRaiz(resultado, fim, valor);
}
if (finalizado == 1) {
return resultado;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment