• Matéria: Informática
  • Autor: cruzeiro20166
  • Perguntado 9 anos atrás

Boa noite,alguém me ajude só esta faltando resolver a soma no total ,e tirar este pedido que tá repetindo várias vezes;
#include
#include

int main(){
int vetor[5];
int id,qt;
int i;
float val;
printf("[-------LANCHONETE KAMUS-------]");
printf("\n");
printf("\n [1] Pao de Queijo R$ 4.00");
printf("\n [2] Coxinha R$ 4.50");
printf("\n [3] Misto Quente R$ 5.00");
printf("\n [4] Torrada R$ 2.00");
printf("\n [5] Suco 1.50\n");

printf("Digite o codigo e o valor da quantidade :");

do{
scanf("%d %d",&id,&qt);
printf("\nSeu pedido :");
if(id==1){
val=qt*4.00;
printf("\n %d X PAO DE QUEIJO=R$ %.2f",qt,val,"%.2f.");
}else {
if(id==2){
val=qt*4.50;
printf("\n %d X COXINHA=R$ %.2f",qt,val,"%.2f.");
}
else {
if(id==3){
val=qt*5.00;
printf("\n %d X MISTO QUENTE=R$ %.2f",qt,val,"%.2f.");
}
else {
if(id==4){
val=qt*2.00;
printf("\n %d X TORRADA=R$ %.2f",qt,val,"%.2f.");}
else {
if(id==5){
val=qt*1.50;
printf("\n %d X SUCO=R$ %.2f",qt,val,"%.2f.");

}

}
}
}

}

}


while(i<5);


return 0;
}


maotrodrigues: Esse laço de repetição é necessário?
maotrodrigues: E o valor total tem que ser salvo no vetor?
cruzeiro20166: sim,como que eu faço ?
cruzeiro20166: posso usar outro while ?

Respostas

respondido por: maotrodrigues
1
#include <stdio.h>#include <stdlib.h>
int main(){
float vetor[5];
int id,qt;
int i;
float val, total=0;
printf("[-------LANCHONETE KAMUS-------]");
printf("\n");
printf("\n [1] Pao de Queijo R$ 4.00");
printf("\n [2] Coxinha R$ 4.50");
printf("\n [3] Misto Quente R$ 5.00");
printf("\n [4] Torrada R$ 2.00");
printf("\n [5] Suco 1.50\n");
for(i=0;i<5;i++){
printf("\n\nDigite o codigo e o valor da quantidade:\n");
scanf("%d %d",&id,&qt);
printf("\nSeu pedido :");
if(id==1){
val=qt*4.00;
printf("\n %d X PAO DE QUEIJO=R$ %.2f",qt,val,"%.2f.");
}else {
if(id==2){
val=qt*4.50;
printf("\n %d X COXINHA=R$ %.2f",qt,val,"%.2f.");
}
else {
if(id==3){
val=qt*5.00;
printf("\n %d X MISTO QUENTE=R$ %.2f",qt,val,"%.2f.");
}
else {
if(id==4){
val=qt*2.00;
printf("\n %d X TORRADA=R$ %.2f",qt,val,"%.2f.");}
else {
if(id==5){
val=qt*1.50;
printf("\n %d X SUCO=R$ %.2f",qt,val,"%.2f.");
}
}
}
}
}
vetor[i] = val;
}
for(i=0;i<5;i++)
total+=vetor[i];
printf("\n\n\nTotal: R$%.2f",total);
return 0;
}

Explicando o que fiz no seu código:
Troquei o WHILE pelo FOR (mais indicado nessa situação, já que se tem um número previamente especificado de repetições)

Declarei o Vetor como float para receber o valor das 5 compras.

Criei uma variável total que ao final de cada repetição do FOR guardará o valor do pedido em um local diferente do vetor.

Criei outro FOR que soma o valor em todas as posições do vetor e coloca na variável total.

Dicas para melhorar o código:
Em contagens automatizadas ou estritas (valores específicos) não é necessário o uso de if(...) else { if(...) }, basta fazer um if em baixo do outro sem else, o código ficará mais curto e será lido de forma mais clara.



cruzeiro20166: beleza, sou formado em matemática, pode ajudar um pouco .
maotrodrigues: Claro que ajuda, só precisa se acostumar com a parte dos códigos, você acaba aprendendo com os erros até que eles não se repetem mais.
maotrodrigues: A sua lógica estava correta, e o que vale é isso.
cruzeiro20166: percebi isto , eu fiz o menuzinho acima. e até agora, fui o único da minha turma que fez assim. os outros nem isso , o cara digitou 200 linhas.kkkk
maotrodrigues: 200 linhas é complicado em kkk
maotrodrigues: Infelizmente a dificuldade não está no numero de linhas, e sim no conteúdo abordado, logo logo vc vai aprender sobre ponteiros, aí começa a complicar consideravelmente kk
cruzeiro20166: verdade, ele já esta passando ,kkkkkk
cruzeiro20166: vou refazer aqui, obrigado e boa noite.
maotrodrigues: Boa sorte e boa noite!
cruzeiro20166: deu erro
Perguntas similares