PROBLEMA: Seja uma equação do segundo grau da forma y = ax² + bx + c.
Desenvolva um algoritmo em linguagem C que receba os coeficientes a e b, e o termo independente c, e retorne a solução da equação dada.
NOTA: Dê uma olhada em nossas explicações neste post Algoritmo: Equação do 2º Grau, sobre a solução de uma Equação do 2º Grau.
Saiba que a solução de uma equação do segundo grau pode ser dada pela Fórmula Geral:
x’ = (–b – raizq(Δ)) / (2 * a)
e
x” = (–b + raizq(Δ)) / (2 * a)
Onde: Δ = b² – 4 * a / c.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> int main(void) { setlocale(LC_ALL,""); float a, b, c, delta, x1, x2; printf("f(x) = ax² + bx + c\n\n"); printf("a = "); scanf("%f", &a); printf("b = "); scanf("%f", &b); printf("c = "); scanf("%f", &c); system("cls"); printf("\nf(x) = %8.2fx² + %8.2fx + %8.2f\n", a, b, c); delta = b*b - 4 * a * c; if(delta < 0) { printf("\nDELTA = %8.2f\nNão possui raízes reais!\n\n", delta); } else { if(delta == 0) { x1 = -b / (2 * a); printf("\nDELTA = %8.2f \nx' = %8.2f\n\n", delta, x1); } else { x1 = (-b - sqrt(delta)) / (2 * a); x2 = (-b + sqrt(delta)) / (2 * a); printf("\nDELTA = %8.2f \nx' = %8.2f\nx'' = %8.2f\n\n", delta, x1, x2); } } system("pause"); return 0; } |
—
*Atualizado em 30 de janeiro de 2023