Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Jessé P. de Melo

C Resultado de variável float zerada

Recommended Posts

Boa Tarde,

Estou fazendo um exercicio que é necessário pegar valor 3 valores e realizar o calculo de báskara.

Criei 3 valores inteiros e 2 float para fazer os cálculos. Programei e compilei e não deu erro, no entanto a variaveis float não recebe valores.

Por que está acontecendo isso?

Segue código.

 

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

void main(){
    int a,
        b,
        c;

    float   raiz_positiva,
            raiz_negativa;

    printf("Digite o valor de A: ");
    getche(a);
    printf("\n");
    printf("Digite o valor de B: ");
    getche(b);
    printf("\n");
    printf("Digite o valor de C: ");
    getche(c);
    printf("\n");
    raiz_positiva=((-b+sqrt(pow(b,2)-(4*a*c)))/(2*a));
    raiz_negativa=((-b-sqrt(pow(b,2)-(4*a*c)))/(2*a));
    printf("raiz_positiva %f\n",&raiz_positiva);
    printf("raiz_negativa %f\n",&raiz_negativa);
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jessé P. de Melo    no printf não precisa / não pode  colocar esse caractere & ,   e se fizer cálculo usando int então o float sai zerado , melhor colocar tudo como float .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O & antes da variável, retorna o endereço dela na memória, no printf realmente não precisaria ter esse &.

Nesse link tem uns exemplos de uso do printf, para formatar com 7 casas deverá usar printf("%.7f",variavel);

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

getche(a) ?

Parei aqui isso não compila. Use scanf.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Jessé P. de Melo   está mostrando esse valor #ind000 por que não existe raiz quadrada de números negativos, então para não mostrar esses valores  modifiquei o código e ele ficou assim :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
    float a,
          delta,
          b,
          c,
          raiz_positiva,
          raiz_negativa;
    printf("Digite o valor de A: ");
    scanf("%f",&a);
    printf("Digite o valor de B: ");
    scanf("%f",&b);
    printf("\n");
    printf("Digite o valor de C: ");
    scanf("%f",&c);
    printf("\n");

    delta = b*b - 4*a*c;
    if(delta<0){
        printf("Nao Existe Raiz Quadrada De umero Negativo ! . . .");
        exit(0);
    }
    raiz_positiva = (-b + sqrt(delta)) / (2*a);
    raiz_negativa = (-b - sqrt(delta)) / (2*a);

    printf("raiz_positiva %.2f\n",raiz_positiva);
    printf("raiz_negativa %.2f\n",raiz_negativa);
    return 0;
}

 

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
Entre para seguir isso  





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

×