Ajuda com um erro de pós-compilação de um código em C

2 respostas
Zignd
[color=blue]Por favor alguém poderia me ajudar com esse código, meu problema é que ele não entrega o valor correto da divisão depois de compilado. [/color]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double seno(double cOposto, double hipotenusa);
double cosseno(double cAdjacente, double hipotenusa);
double tangente(double cOposto, double cAdjacente);

int main() {
    int escolha;
    printf("Por favor escolha o tipo de operação desej1a fazer:\n"
        "1. SENO\n"
        "2. COSSENO\n"
        "3. TANGENTE\n\n"
        "Entre com a sua escolha: ");
                
    escolha = getchar();
    
    switch(escolha) {
        case '1': {
            double cOposto, hipotenusa;
            printf("Entre com o valor do cateto oposto: ");
            scanf("%f", &cOposto);
            printf("Entre com o valor da hipotenusa: ");
            scanf("%f",&hipotenusa);
            printf("%.2f\n", seno(cOposto, hipotenusa));
        }
        break;
               
        case '2': {
            double cAdjacente, hipotenusa;
            printf("Entre com o valor do cateto adjacente: ");
            scanf("%f", &cAdjacente);
            printf("Entre com o valor da hipotenusa: ");
            scanf("%f", &hipotenusa);
            printf("%.2f\n", cosseno(cAdjacente, hipotenusa));
        }
        break;
        
        case '3': {
            double cOposto, cAdjacente;
            printf("Entre com o valor do cateto oposto: ");
            scanf("%f", &cOposto);
            printf("Entre com o valor do cateto adjacente: ");
            scanf("%f", &cAdjacente);
            printf("%.2f\n", tangente(cOposto, cAdjacente));
        }
        break;
    }
    
    system("pause");
    return 0;
}

double seno(double cOposto, double hipotenusa) {
    return(cOposto/hipotenusa);
}

double cosseno(double cAdjacente, double hipotenusa) {
    return(cAdjacente/hipotenusa);
}

double tangente(double cOposto, double cAdjacente) {
    return(cOposto/cAdjacente);
}

2 Respostas

getAdicted

Boa noite amigo,

Eu acho que o tipo double estava com uma precisão maior do que a sua necessidade, eu alterei o tipo para float e funfou, agora se for um pre-requisito o double, volta ai...

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;

float seno(float, float);
float cosseno(float, float);
float tangente(float, float);

int main() {
    int escolha;
    printf("Por favor escolha o tipo de operação desej1a fazer:\n"
        "1. SENO\n"
        "2. COSSENO\n"
        "3. TANGENTE\n\n"
        "Entre com a sua escolha: ");

    escolha = getchar();

    switch(escolha) {
        case '1': {
            float cOposto, hipotenusa;
            printf("Entre com o valor do cateto oposto: ");
            scanf("%f", &cOposto);
            printf("Entre com o valor da hipotenusa: ");
            scanf("%f",&hipotenusa);
            printf("%f\n", seno(cOposto, hipotenusa));
        }
        break;

        case '2': {
            float cAdjacente, hipotenusa;
            printf("Entre com o valor do cateto adjacente: ");
            scanf("%f", &cAdjacente);
            printf("Entre com o valor da hipotenusa: ");
            scanf("%f", &hipotenusa);
            printf("%.2f\n", cosseno(cAdjacente, hipotenusa));
        }
        break;

        case '3': {
            float cOposto, cAdjacente;
            printf("Entre com o valor do cateto oposto: ");
            scanf("%f", &cOposto);
            printf("Entre com o valor do cateto adjacente: ");
            scanf("%f", &cAdjacente);
            printf("%.2f\n", tangente(cOposto, cAdjacente));
        }
        break;
    }

    system("pause");
    return 0;
}

float seno(float cOposto, float hipotenusa) {
    return (cOposto/hipotenusa);
}

float cosseno(float cAdjacente, float hipotenusa) {
    return(cAdjacente/hipotenusa);
}

float tangente(float cOposto, float cAdjacente) {
    return(cOposto/cAdjacente);
}

[]'s

Zignd

[color=blue]Vlw pela ajuda[/color]

Criado 22 de dezembro de 2011
Ultima resposta 23 de dez. de 2011
Respostas 2
Participantes 2