Ir ao conteúdo
  • Cadastre-se

C Resultado é sempre zero


fenrier

Posts recomendados

code:

int calcularhipotenusa (int c1, int c2){
    double hipotenusa;
    hipotenusa = sqrt(pow(2,2) + pow (c2,2));
    return hipotenusa;
    
}
void main (){
    double c1, c2;
    printf("digite o primeiro cateto: ");
    scanf("%1f",&c1);
    printf("digite o segundo  cateto: ");
    scanf("%1f",&c2);
    printf("o resultado e :%1f" ,calcularhipotenusa(c1,c2));
    return calcularhipotenusa;
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@fenrier     para postar seu código é melhor usar o botão  <>

barap.jpg.856446029209bc57f7950c9df9c5b014.jpg

  que está desenhado lá na barra de ferramentas da janela de postar ,  pois senão seu código fica faltando alguns caracteres ,  e para funcionar bem use isso nessa linha 

printf("o resultado e :%1f\n\n\n" ,c1=calcularhipotenusa(c1,c2));

 

Link para o comentário
Compartilhar em outros sites

14 minutos atrás, devair1010 disse:

@fenrier     para postar seu código é melhor usar o botão  <>

barap.jpg.856446029209bc57f7950c9df9c5b014.jpg

  que está desenhado lá na barra de ferramentas da janela de postar ,  pois senão seu código fica faltando alguns caracteres ,  e para funcionar bem use isso nessa linha 


printf("o resultado e :%1f\n\n\n" ,c1=calcularhipotenusa(c1,c2));

 

eu fiz essa linha agora so da 2 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@fenrier   sua função é int , ela vai retiornar sem pre um valor inteiro e ignorar o restante , então creio que colocando a função como double ou float ou long long , vai funcionar bem .

double calcularhipotenusa (int c1, int c2){
    double hipotenusa;
    hipotenusa = sqrt(pow(c1,c2) + pow (c2,2));
    return hipotenusa;
    
} 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Segue uma lista do que tem que corrigir no código original postado no tópico:

 

1 - Incluir as bibliotecas stdio.h e math.h 

2 - Mudar o tipo da função calcularhipotenusa para double para retornar um número double

3 - Mudar os tipos dos parâmetros da função c1 e c2 para double ao invés de int

4 - Corrigir a equação para calcular a hipotenusa corretamente usando c1 e c2

5 - Corrigir o tipo da função main trocando o tipo de void para int 

6 - Corrigir o especificador de tipo nas funções scanf para usar o especificador correto para o tipo double%lf )

7 - Corrigir o último comando da função main para retornar 0 (zero) ao invés de retornar a função calcularhipotenusa

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@fenrier     esse tipo double é problemático , use o float  , assim 

#include <stdio.h>
#include <math.h>
#include <windows.h>
#define H GetStdHandle(STD_OUTPUT_HANDLE)
void textcolor_2(int l, int f){SetConsoleTextAttribute(H,l+(f<<4));}
float calcularhipotenusa(float c1, float c2){
    float hipotenusa;
    hipotenusa = sqrt(pow(c1,2)+pow(c2,2));
    return hipotenusa;
}
void main(){
    float c1, c2;
    printf("digite o primeiro cateto: ");
    scanf("%1f",&c1);
    printf("digite o segundo  cateto: ");
    scanf("%1f",&c2);
    textcolor_2(15,9);
    printf("\n  o resultado eh : %.2f  \n\n\n" ,calcularhipotenusa(c1,c2));
    textcolor_2(10,12);
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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...