Gostaria de pedir ajuda com a seguinte questão:
(Não pode utilizar função, nem vetor)
int main()
{
int codigo, quant, soma1, exit, soma2, soma3, soma4, soma5, soma6, soma7, somatotal;
do
{
printf("Insira o codigo do produto: ");
scanf("%d", &codigo);
switch(codigo)
{
case 123:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma1=quant*0.1;
fflush(stdin);
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 234:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma2=quant*0.15;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 345:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma3=quant*0.12;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 456:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma4=quant*0.1;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 567:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma5=quant*4.5;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 678:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma6=quant*30;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 789:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma7=quant*8.5;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
default:
printf("Codigo invalido. Insira novamente.\n\n");
}
if(soma1>0)
{
printf("Prego - %d", soma1);
}
if(soma2>0)
{
printf("Parafuso - %d\n", soma2);
}
if(soma3>0)
{
printf("Porca - %d\n", soma3);
}
if(soma4>0)
{
printf("Arruela - %d\n", soma4);
}
if(soma5>0)
{
printf("Tijolo - %d\n", soma5);
}
if(soma6>0)
{
printf("Cimento - %d\n", soma6);
}
if(soma7>0)
{
printf("Fita Isolante - %d\n", soma7);
}
somatotal=soma1+soma2+soma3+soma4+soma5+soma6+soma7;
printf("O valor total da compra e: %d", somatotal);
}
while((codigo)&&(exit!=0));
}
/*Questão 04 Uma loja de materiais de construção possui a seguinte tabela de preços:
Código Descrição Valor unitário
123 Prego R$ 0,10
234 Parafuso R$ 0,15
345 Porca R$ 0,12
456 Arruela R$ 0,10
567 Tijolo R$ 4,50
678 Cimento R$ 30,00
789 Fita isolante R$ 8,50
Pede-se o desenvolvimento de um programa que faça o cálculo do valor total de cada compra na loja. Para isso, em cada compra o sistema deve solicitar o código
e a quantidade de cada produto desejado até que o usuário opte por terminar a compra. Para cada produto escolhido, o programa deve exibir o valor total,
multiplicando o valor unitário pela quantidade desejada. Além disso, deve exibir ao usuário o valor total da compra.
Ao final da execução, o programa ainda deve apresentar:
- O total arrecadado com as compras realizadas;
- O valor da compra de valor mais alto.
Nota: caso o código informado seja inválido, uma mensagem de erro deve ser exibida e um novo código solicitado.*/
A dificuldade é que não está somando corretamente cada produto. O que posso ter feito de errado? Ele invade memória e calcula uma soma fixa para produtos alternados. A parte em que exibe o valor de compra mais alto eu ainda não coloquei pois já estou com esse erro no início o que me travou na questão. Desde já, obrigada pela atenção
adicionado 35 minutos depois
Sou nova aqui no Clube do Hardware e não sei como fazer no caso de eu mesma encontrar o erro. O post tem que ser excluído, ou informo que achei a solução? No caso de ser a segunda opção, segue o código funcionando como deveria(claro que eu gostaria de ter uma ideia com menos linhas, ficou enorme, rsrsrs). Desde já obrigada pela atenção.
#include<stdio.h>
int main()
{
int codigo, quant, exit;
float soma1=0, soma2=0, soma3=0, soma4=0, soma5=0, soma6=0, soma7=0, somatotal, maior=0;
do
{
printf("Insira o codigo do produto: ");
scanf("%d", &codigo);
switch(codigo)
{
case 123:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma1=quant*0.1;
fflush(stdin);
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 234:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma2=quant*0.15;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 345:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma3=quant*0.12;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 456:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma4=quant*0.1;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 567:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma5=quant*4.5;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 678:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma6=quant*30;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
case 789:
printf("Insira a quantidade do produto: ");
scanf("%d", &quant);
soma7=quant*8.5;
printf("Deseja inserir mais algum produto? Insira [1] para 'SIM' ou [0] para 'SAIR'\n");
scanf("%d", &exit);
fflush(stdin);
break;
default:
printf("Codigo invalido. Insira novamente.\n\n");
break;
}
}
while((codigo)&&(exit!=0));
if(soma1>0)
{
printf("Prego - %.2f\n", soma1);
}
if(soma2>0)
{
printf("Parafuso - %.2f\n", soma2);
}
if(soma3>0)
{
printf("Porca - %.2f\n", soma3);
}
if(soma4>0)
{
printf("Arruela - %.2f\n", soma4);
}
if(soma5>0)
{
printf("Tijolo - %.2f\n", soma5);
}
if(soma6>0)
{
printf("Cimento - %.2f\n", soma6);
}
if(soma7>0)
{
printf("Fita Isolante - %.2f\n", soma7);
}
if(soma1>maior)
{
maior=soma1;
}
if(soma2>maior)
{
maior=soma2;
}
if(soma3>maior)
{
maior=soma3;
}
if(soma4>maior)
{
maior=soma4;
}
if(soma5>maior)
{
maior=soma5;
}
if(soma6>maior)
{
maior=soma6;
}
if(soma7>maior)
{
maior=soma7;
}
printf("O maior valor de compra foi: %.2f\n", maior);
somatotal=soma1+soma2+soma3+soma4+soma5+soma6+soma7;
printf("O valor total da compra e: %.2f\n\n", somatotal);
}