Ir ao conteúdo
  • Cadastre-se

Ajuda? Função acumulador C


Posts recomendados

Não sei ond eu errei nessa função:

 

Escreva uma função que retorne o valor total a ser pago em uma compra de supermercado. A função deve ler a quantidade e o preço unitário de cada produto, atualizando o subtotal a cada iteração do laço. Considere que a compra será encerrada quando for digitado um valor menor ou igual a zero para a quantidade de um produto.

Faça um programa para chamar e imprimir o resultado sua função.

 

#include <stdio.h>
#include <stdlib.h>



    float valor_total(preco, quant)
    {
    float total
    total=0;
    printf("Digite a quantidade de um produto");
    scanf("%d",&quant);
    while(quant<=0)

    {
    total=preco*quant;
    printf("\n Total parcial", total);
    printf("\n Digite o preco do produto");
    scanf("%f",preco);
}
printf("Soma total %f",total);
return 0;

}

Link para o comentário
Compartilhar em outros sites

Olá!

 

Olha só dei uma olhada rapida para lhe ajudar . . .

 

- cade a função “ main “ que vai chamar a sua função – sem isso, aqui o programa nem Compila.

 

- Linha 8: faltou um “ ; ”

 

|16|warning: too many arguments for format – tá faltando um código de formatação para “total”

 

- Nos três alertas seguintes: preco e quant, você não especificou o tipo dos parâmetros, sendo assim ( pelo menos aqui ) o compilador os está definindo por padrão como sendo do tipo “int”

 

|6|warning: type of ‘preco’ defaults to ‘int’

 

|6|warning: type of ‘quant’ defaults to ‘int’

 

|18|warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘int’ - exatamente o que eu disse acima como você não especificou o tipo de preco como sendo do tipo “float”, o compilador automaticamente o especificou como sendo do tipo “int” e gerando este alerta quando você tentou usá-lo com o código de formatação “%f”.

 

- na declaração da sua função você especifica que ela possui dois parametros que receberão os argumentos, caso você queira é só passar os valores que a sua função vai receber assim que ela for chamada em "main" ou seja, os printf e scanf para entrada dos dados devem estar no main e não na sua função, mas . . .

 

Caso você queira, você tambem pode fazer da forma que você o fez, porém não é necessario que a sua função receba ou retorne nenhum valor, ou mesmo tenha parametros, elá será do tipo void valor_total ( void ). Com todo o codigo dentro dela . . . cabendo a main apenas chamar a sua função . . .

 

Bom por hora é só, tenta aplicar as dicas acima e termine o codigo . . .

 

 

Ubuntu 14.04  GNU GCC 4.8  CodeBlocks 13.12

 

 

Espero Ter Ajudado ! ! !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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