Ir ao conteúdo

Posts recomendados

Postado

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;	
	
	
}

 

Postado
13 horas atrás, Isis Moraes disse:

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!

 

 

O problema que o resultado pode dar um número irracional (na maioria das vezes, na verdade), pois nem sempre a raiz quadrada será um número exato, de modo que não há como representar esse números em forma de fração.

Mas se quiser, poderia implementar um código para representar a saída da forma (2 + raiz(3))/2, por exemplo, simplificar nos casos de raiz exata e etc., mas deixaria o código um tanto mais complexo.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!