Ir ao conteúdo
  • Cadastre-se
iLoveProg

Função bhaskara - o que esta de errado com o meu codigo?

Recommended Posts

Esse primeiro código é a Bhaskara que esta funcionando perfeitamento. Eu converti ela pra uma função e agora esta dando resultados diferentes. Alguem saberia o porque? Eu não estou conseguindo ver nenhum erro. O código sem função esta compilando e o resultado esta certo, o código convertida com função esta compilando, mas o resultado esta errado. O primeiro é o código de Bhaskara sem função, e o segundo é com função(esse que esta com erro).

 

//CODIGO BHASKARA SEM FUNÇÃO

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

main()
{
    float a, b, c, delta;

    printf("\nBHASKARA\n\n");

    printf("\nDigite o valor de A: ");
    scanf("%f", &a);
    printf("\nDigite o valor de B: ");
    scanf("%f", &b);
    printf("\nDigite o valor de C : ");
    scanf("%f", &c);

    delta = (pow(b, 2) - 4*a*c);

    if(delta >= 0)
    {
        if(delta == 0)
        {
            printf("\nA raiz x1 = %f", ((-b + sqrt(delta))/2*a));
        }

        else
        {
            printf("\nA raiz x1 = %f", ((-b + sqrt(delta))/2*a));
            printf("\nA raiz x2 = %f", ((-b - sqrt(delta))/2*a));
        }
    }

    else
    {
 

        printf("0");
    
    }

    return(0);
}
// CONVERTIDA EM FUNÇÃO

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float bhaskara(float a, float b, float c);

int main(){
 
 float a, b, c;
 float resultado;
 
 printf("\nDigite o valor de A: ");
    scanf("%f", &a);
    printf("\nDigite o valor de B: ");
    scanf("%f", &b);
    printf("\nDigite o valor de C : ");
    scanf("%f", &c);
 
 printf("\n%f\n%f", bhaskara(a, b, c));
 
 return 0;
}

float bhaskara(float a, float b, float c){

    float delta, raiz1, raiz2;
    delta = (pow(b, 2) - 4*a*c);
   
   if(delta >= 0){
        if(delta == 0){
        
            raiz1 = ((-b + sqrt(delta))/2*a);
            
            return(raiz1, raiz2);
        }
        else{
         raiz1 = ((-b + sqrt(delta))/2*a);
         raiz2 = ((-b - sqrt(delta))/2*a);
         
         return (raiz1, raiz2);
        }
    }
    else{
     
 return 0;
 
 }
}
      

SixeEngenharia
iniciante

Mensagens : 13
Data de inscrição : 02/05/2016
Idade : 20
Localização : Rio de Janeiro, RJ, BRasil

Ver perfil do usuário Enviar uma mensagem privada
Voltar ao Topo Ir em baixo

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citação

(-b + sqrt(delta))/(2*a)

Se for o valor errado acredito q seja isso... a falta do parenteses na parte do divisor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×