Ir ao conteúdo

C Função para cálculo de volume de uma esfera


Ir à solução Resolvido por arfneto,

Posts recomendados

Postado

Estou com um problema no código, não estou conseguindo rodar, estou aprendendo funções recentemente se alguém poder me ajudar e explicar porque não está indo assim, deste já agradeço.

 

Questão: Crie a função Esfera que receba da função main o valor do raio e calcule o volume da esfera o seu volume (v = 4/3*Pi*R3). Exiba o resultado obtido no interior da função main.

 

#include<stdio.h>
#include<conio.h>
#define ex1

#ifdef ex1
float esfera(float x);
main()
{
    float raio, result;
    printf("Digite o valor do Raio: ");
    scanf("%f", &raio);
    result=esfera(raio);
    printf("O volume da esfera será: %f", result);
}

float esfera(float x)
{
    float resultado;
    resultado=(4*3.14((x*x)*x))/3;
}

#endif // ex1

 

  • Solução
Postado
24 minutos atrás, Malcolm X disse:

float esfera(float x)
{     float resultado;
    resultado=(4*3.14((x*x)*x))/3;
}

 

Não entendi a razão dos #define e #if.

 

Sua função deve retornar algo ou não servirá de nada. Quando você escreve

    result=esfera(raio);

está imaginando que a função retornou um resultado. 
 

E curiosamente a função até tem uma variável float resultado, dentro dela. E tem o cálculo. Mas nada retorna. E assim que passar pela '}' na função aqueles valores deixam de existir.

 

Pode usar assim

float esfera(float x)
{
    float resultado;
    resultado=(4*3.14((x*x)*x))/3;
    return resultado;
}

ou talvez algo mais simples como

float esfera(float x)
{
    return (4*3.14((x*x)*x))/3.;
}
10 minutos atrás, Mauro Britivaldo disse:

O Volume O(4.0\3)*3.14*(x*x*x)

 

Cuidado: não é '\'

 

  • Obrigado 1
Postado

 

12 horas atrás, arfneto disse:
12 horas atrás, Mauro Britivaldo disse:

O Volume O(4.0\3)*3.14*(x*x*x)

 

Cuidado: não é '\'

Verdade, o compilador mostrou isso.

 

12 horas atrás, arfneto disse:

ou talvez algo mais simples como


float esfera(float x)
{
    return (4*3.14((x*x)*x))/3.;
}

Mostrou também que esqueceu a multiplicação entre Pi*(R3)

 

12 horas atrás, Malcolm X disse:

float esfera(float x) {
	float resultado;
	resultado=(4*3.14((x*x)*x))/3;
}

 

Já você, esquece a multiplicação Pi*(R3) e o Retorno de resultado.

  • Curtir 2
Postado
13 horas atrás, arfneto disse:

Não entendi a razão dos #define e #if.

uso isso pois estou fazendo uma série de exercícios, então pra não ficar abrindo um empty file pra cada exercício e salvar todo momento, apenas crio um define e vou enumerando tipo: ex1, ex2, ex3 ... não sei se eh certo.

Postado
3 horas atrás, Malcolm X disse:

Estou iniciando agora nessa matéria haha

Com tempo notará que erros bobinhos tipo esquecer coisas são os mais comuns.

Bom Trabalho.

  • Membro VIP
Postado
23 horas atrás, Malcolm X disse:

@arfneto consegui resolver, obrigado. Estou iniciando agora nessa matéria haha

 

@Malcolm X, por favor, poste teu código completo para, eventualmente, ser analisado e também poder servir de base para futuros visitantes.

 

No aguardo.

 

  • Curtir 1
Postado

Conforme pedido, segue o código:

//Protótipo da função
float esfera(float x);

//função pricipal
main()
{
    float raio, result; //variáveis
    printf("Digite o valor do Raio: ");
    scanf("%f", &raio);
    result=esfera(raio);//chamando a função esfera
    printf("O volume da esfera será: %f", result);
}
//Função esfera
float esfera(float x)
{
    float resultado;
    resultado=(4.0/3)*3.14*(x*x*x); //cálculo
    return resultado;//retornando o valor de resultado
}

 

  • Obrigado 1

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