Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Smart Developer

Resultado de Equação é NAN ! O que há?

Recommended Posts

Bom dia pessoal,

Fiz um script para um trabalhinho de facul mas estou com um bug...

 

A equação de primeiro grau funciona normalmente e a equação de segundo grau funciona até o delta... no entanto, quando peço o retorno dos valores de x e x2 (na de segundo grau) ele retorna:

 

exemplo: ---> O resultado da equacao 1.00X2+2.00X+3.00=0 é X1=-nan e X2=-nan --- afinal WTF NAN??? Que que eu fiz de errado?

 

PS.: Se algum espertinho da UNICAMP resolver copiar, vale lembrar que 2 trabalhos iguais equivalem a 0 e segundo regimento interno pode ocasionar expulsão da Universidade para ambos os autores do trabalho....

 

Abração galera!

 

//      exercicio4.c
//      
//      ALUNO: XXXXXXXXXXXXXXXXXXXXXX
//	R.A.: XXXXXXXXXXXX
//	CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas
//	FACULDADE DE TECNOLOGIA DA UNICAMP (LIMEIRA-SP)
//	E-MAIL ACADÊMICO: XXXXXXXXXXXXXX@dac.unicamp.br
//	DATA DE CRIAÇÃO: XX/XX/XXXX
//
//
//	DESCRIÇÃO DO PROGRAMA
//
//	Este programa resolve equações de primeiro (AX+B=0) e segundo (AX2+BX+C=0) grau.


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int tipo_de_equacao = 0;
float a, b, c, delta, x, x2;

//	A variável tipo_de_equação encaminha o usuário para o respectivo
//	script escolhido de acordo com o Tipo de Equação que o mesmo deseja
//	resolver.

// A variável x é realmente o valor de X na EQUAÇÃO DE PRIMEIRO GRAU.
// As variáveis x e x2 são as resoluções da EQUAÇÃO DE SEGUNDO GRAU.


printf("\n\nDESCRIÇÃO DO PROGRAMA (Exercício 3)\n");
printf("Este programa resolve equações de primeiro (AX+B=0) e segundo (AX2+BX+C=0) grau.\n\n");

printf("***************MENU***************\n\n");
printf("Que tipo de equação deseja resolver?\n");
printf("1 - EQUAÇÃO DE PRIMEIRO GRAU\n");
printf("2 - EQUAÇÃO DE SEGUNDO GRAU");
printf("\n\n***************MENU***************\n\n");
scanf("%d", &tipo_de_equacao);

//Encaminha o usuário para o respectivo script conforme escolhido pelo menu
switch (tipo_de_equacao)
{
	case 1:

	printf("Você selecionou EQUAÇÃO DE PRIMEIRO GRAU\n\n");


	printf("Seguindo a notação AX+B=0 digite o valor de A:\n");
	scanf("%f", &a);
	printf("Seguindo a notação AX+B=0 digite o valor de B:\n");
	scanf("%f", &B); //ESSE B É MINÚSCULO MAS NO FÓRUM SAI MAIÚSCULO....

	x = -b/a;

	printf("O resultado da equacao %2.2fX+%2.2f=0 é X=%2.2f", a, b, x);


	break;


	case 2:

	printf("Você selecionou EQUAÇÃO DE SEGUNDO GRAU\n\n");


	printf("Seguindo a notação AX²+BX+C=0 digite o valor de A:\n");
	scanf("%f", &a);
	printf("Seguindo a notação AX²+BX+C=0 digite o valor de B:\n");
	scanf("%f", &B); //ESSE B É MINÚSCULO MAS NO FÓRUM SAI MAIÚSCULO....
	printf("Seguindo a notação AX²+BX+C=0 digite o valor de C:\n");
	scanf("%f", &c);

	delta = b*b-4*(a*c); // Define-se o valor de delta.

	x = (-b+sqrt(delta))/2*a;
	x2 = (-b-sqrt(delta))/2*a;


	printf("O resultado da equacao %2.2fX2+%2.2fX+%2.2f=0 é X1=%2.2f e X2=%2.2f", a, b, c, x, x2);

               break;


}

return 0; 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, aqui funciono normalmente, quando você compila tem algum erro? algum warning?

Mostre melhor como apareceu o erro, porque compilei e executei aqui e funciono normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

NaN = Not a Number

No padrão C99 você encontra o seguinte texto:

 

"The primary utility of quiet NaNs, as stated in IEC 60559, “to handle otherwise intractable situations, such as providing a default value for 0.0/0.0,” is supported by C99."

 

http://www.aquaphoenix.com/ref/gnu_c_library/libc_258.html

 

http://jumpi.wordpress.com/2009/01/06/numeros-complexos-vs-nan-not-a-number/

 

http://en.wikipedia.org/wiki/NaN

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.