Ir ao conteúdo
  • Cadastre-se

C Comando de Repetição (erro na fórmula?)


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

13 horas atrás, devair1010 disse:

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


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

 

 

@devair1010  eu fiz como sugeriu e não resolveu... testei através do compilador online (https://www.onlinegdb.com/online_c_compiler) e utilizando o CodeBlocks 17.12... 

 

Deu certo quando compilou ai ? :huh:

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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