Ir para conteúdo
Fórum Script Brasil
  • 0

alg,volume de uma esfera(ultima vez)


pc-gamer

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 0

A cahamda da função não faz sentido:

result=esf®;
Além disso, na função esf(), você declara uma variável 'r', e antes de atribuir qualquer valor á mesma,já a utiliza numa expressão. Isso é incorreto. Sem falar que você sobreescreve o valor passado via parâmetro com o resultado da expressão. Não há lógica alguma nisso. O cálculo de volume de uma esfera é V = (4/3)πr³ em que: v = volume da esfera; π = "pi" = 3,1416; r = raio da esfera. Ou seja, divide-se por 3 apenas o '4', e não toda a expressão. Linearizando para uma expressão aceita pelo C ANSI:
volume = (4.0/3) * 3.1415 * raio * raio * raio;
Ainda, ao fazer uma divisão em que ambos os operandos são inteiros, o resultado é um inteiro em C. Portanto, é necessário usar um dos operandos como float. Corrigindo tudo, fica assim:
#include <stdio.h>
#define PI 3.1415

float esf(float raio){
    float volume;
    volume = (4.0/3) * PI * raio * raio * raio;
    return volume;
}

int main(){
    float raio;
    printf("Digite o valor do raio:");
    scanf("%f",&raio);

    printf("o volume e: %.2f", esf(raio));
    return(0);
}

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, tem alguns erros no seu código:

1) Para você utilizar o comando "getch()", você está esquecendo de declarar a biblioteca:

<conio.h>
2) Do jeito que você está passando o valor para a função está errado:
result=esf®;
Se você quer passar "um" parametro para ela(função) deveria ser assim:
result=esf(r);
3) Como você fez a função, está errado, pois a variavel que deveria receber o valor do cálculo deveria ser a "r" e não a "v", a qual você está recebendo valor por parametro. Exemplo:
r=(4*3.14*v*v*v)/3;
4) Como não sei a fórmula do calculo da esfera, apenas fiz as modificações corretas no seu código e fiz da seguinte maneira o exemplo:
#include <stdio.h>
#include <conio.h>

float esf(float v){

float r;

 r=(4*3.14*v*v*v)/3;

 return r;
}


int main(){

  float r,result;

  printf("Digite o valor do raio:");
  scanf("%f",&r);

  result=esf(r);

  printf("o volume e:%.2f",result);

  getch();
  
}

Acho que é isso, apenas verifique a maneira correta do cálculo da esfera.

Editado por Prog_Junior
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...