Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal,

 

Tenho um problema aqui que parece ser simples mas não estou conseguindo progredir: tenho que criar um programa em C que calcule o custo do ouro em função da espessura da camada de ouro depositada em um anel. 

 

Então, por exigências do comando, eu preciso:

 

1. Entrar com raio interno do anel;

2. Entrar com diâmetro;

3. Entrar com mínimo e máximo de espessura que quero saber o preço (sendo esp. mín= 5 e máx. = 50 µm);

4. Entrar com Intervalo de espessura (em relação ao min e max, quantos valores eu quero saber) e;

4. Entrar com custo da grama do ouro.

 

Também devo criar um arquivo em txt onde apresente o valor da grama do ouro e os valores de espessuras de camadas de ouro depositadas no anel e seus respectivos custos.

 

 

Para facilitar, foi dado mais algumas informações:

 

Área superficial do anel S é:  S= pi² (2r +d)d 

Peso do revestimento é: P= p * S * t, onde p = peso especifico do ouro (17.7 g/cm³) , S = area superficial e t = a espessura.

 

 

Para testar, pode-se utilizar os valores:

raio: 8 mm

diâmetro: 2 mm

custo do ouro = 132 p/ grama.

 

 

Estou anexando o código que escrevi. Eu consigo criar o arquivo .txt e fazer o cálculo, porém como podem ver se testarem, o valor final sempre fica em 0 .. :huh:

Esse é o problema, o que não está funcionando que eu defino, por exemplo, 3 espessuras e as 3 me retornam 0 ?

 

 

PS. tentei converter tudo para mm para não ficar trabalhando com várias unidades.. por isso há lugares que os valores estão meio estranhos..

#include<stdio.h>
#include<math.h>
#include<conio.h>

int main(){

FILE *pont_arq;
float area, valor, superficie, espessura, quantidade, raio, peso, tmin, tmax, custoouro, diametro, PI;
int qtdade, i;

printf("\n\nVamos calcular o valor do seu revestimento de ouro!\nDigite o raio interno do anel [mm]: ");
scanf("%f", &area);

printf("\nDigite o diametro [mm]: ");
scanf("%f", &diametro);

printf("\nAgora entre com a espessura minima e maxima, respectivamente [mm]: ");
scanf("%f %f", &tmin, &tmax);

while (tmin < 0.005){
    printf("\nEspessura minima nao aceita. Favor digitar novamente um valor de espessura minima >= 0.005 [mm]: ");
    scanf("%f", &tmin);
}
while (tmax > 0.05){
    printf("\nEspessura maxima nao aceita. Favor digitar novamente um valor de espessura maxima <= 0.05 [mm]: ");
    scanf("%f", &tmax);
}

printf("\nEstamos acabando.. Informe agora a quantidade de valor da espessura que deseja visualizar: ");
scanf("%d", &qtdade);

printf("\nAgora basta informar o valor de custo da grama do ouro por [g/cm3]: ");
scanf("%f", &custoouro);

peso = 0.0177;
PI = 3.14;


pont_arq = fopen("dados.txt", "w");
fprintf(pont_arq, "\n\nCusto da grama do ouro: %f", &custoouro);



//Aqui entra um comando para repetir as expressões para os diferentes valores de T (espessura).
i=0;
for(i=1 ; i <= qtdade ; i++){
    superficie = ((PI * PI ) * ( ( (2 * raio) + diametro) * diametro));
    quantidade = (peso * superficie * espessura);

    valor = custoouro * (quantidade / 10);

    fprintf(pont_arq, "\n\nO valor do anel e: %f", &valor);
    printf("\n\nO valor do anel e: %f", &valor);
}


return 0;

}
  • Curtir 1
Postado

@DL.Fernandes   o resultado está saindo zerado por que você colocou esse caractere  &  lá no printf nessa linha 

printf("\n\nO valor do anel e: %f", &valor);

então só remover esse caractere e ficaria assim   :

printf("\n\nO valor do anel e: %.2f", valor);

 

  • Curtir 2

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