Esfera
Implemente um programa que calcule o volume e área total de uma esfera de raio r.
r = raio
PI = 3,14
Área da Esfera = 4PIr^2
Volume da Esfera = 4PIr^3 / 3
|
|
Restrições
1. Você deve implementar uma função fora do main para calcular ambas operações.
2. Defina uma constante chamada PI nas definições de seu programa com o valor de p.
3. Utilize a função pow() da biblioteca math.h para calcular as funções exponenciais.
4. As funções devem ter o tipo de retorno void conforme exemplo do protótipo:
void calc_esfera(xxxx).
5. Como a função tem retorno do tipo void você não poderá utilizar o comando return para retornar valores para a função main, você deverá utilizar os conceitos de ponteiros para trabalhar com uma área de memória em comum, entre as funções calc_esfera() e o main.
6. Você não poderá utilizar nenhum comando de impressão de resultados (printf, puts e etc) dentro da própria função calc_esfera() pois você deverá imprimir os resultados obtidos na função calc_esfera() dentro do main.
7. Variáveis globais não serão aceitas.
Ajuda
Crie variãveis no main para armazenar os resultados que serão obtidos no cálculo e passe o endereço de memória dessas variáveis para a função calc_esfera().
Ex:float r, area, volume;
Chame a função calc_esfera() passando os endereços das variáveis área e volume que poderão ser impressas diretamente do main.
Código
#include <stdio.h>
#include <math.h>
#define pi 3.14
void area(float *r, float *A) {
*A = (4 * pi) * (pow(*r, 2));
}
void volume(float *r, float *B) {
*B = ((4 * pi) * pow(*r, 3)) / 3;
}
/* com uma funcao apenas:
* void calcula (float *r, float *A, float *B {
* *A = (4 * pi) * (pow(*r, 2));
* *B = ((4 * pi) * pow(*r, 3)) / 3;
* }
* no main:
* calcula(&raio,&a,&b);
* printf("Area: %f\n Volume: %f",a,b);
*/
int main(void) {
setbuf(stdout, NULL);
float raio, a, b;
printf("** ESFERA **\n\n");
printf("Digite o valor do raio da circunferencia: ");
fflush(stdin);
scanf("%f", &raio);
printf("\n");
area(&raio, &a);
volume(&raio, &b);
printf("Area: %f\n", a);
printf("Volume: %f", b);
return 0;
}