Olá pessoal, tudo bom? tenho uma dúvida sobre meu código, o mesmo está funcionando e gerando o resultado esperado, mas gostaria de saber se há como simplificar. Há também o caso onde o resultado do "x1" ou "x2" que deveriam ser números fracionados, como 5/2 porém como é um float ele acaba dividindo e gerando a resposta em número real (2.5), não que esteja errado, mas queria saber se há algo que dê para fazer e deixar o número impresso desta forma. Deixo o código abaixo para avaliarem!
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <conio.h>
int main()
{
setlocale(LC_ALL, "Portuguese"); // usando função da biblioteca lacale para uso de caracteres especiais.
/* 9º - Elabore um algoritmo e um programa em C que leia os
coeficientes a, b e c de uma função de 2º grau e calcule x
para y=0, imprimindo o resultado na tela. */
int a, b, c;
float x1, x2, delta;
printf("Entre com o valor de A e B e C, respectivamente:\n"); //entrada de valores para a função de 2º grau
scanf("%d %d %d", &a, &b, &c);
printf("Sua equacao ficou: %dx²%dx%d=0\n", a, b, c); //mostra na tela como ficou, considerando que a equação seja completa!
delta = (pow(b,2)-4*a*c); //calculo de delta para depois solucionar o x
x1 = ((-(b)-(sqrt(delta)))/(2*a)); //calculo x1;
x2 = ((-(b)+(sqrt(delta)))/(2*a)); //calculo x2;
printf("O valor de x1 é: %.2f\n", x1); //printa na tela o valor do x1;
printf("O valor de x2 é: %.2f\n", x2); //printa na tela o valor de x2;
//note que, ele divide até onde consegue e mostra o resultado em numero real, frações são divididadas.
return 0;
}