Galera, fiz um programa em C com o seguinte objetivo.
O usuário escolhe um carro e monta de acordo com seu gosto, depois por quando sai o carro.
Fiz 3 funções:
1 - Modelo, onde o usuario escolhe o carro desejado.
2- Cor, onde o usuario escolhe a cor do carro.
3- Acessórios, onde o usuario escolhe os acessórios do veículo.
Compilei o programa, até aí tudo bem, mas quando me foram mostrados os valores no fim do
programa, estavam todos absurdamente errados.
Li e reli o meu código varias vezes sem sucesso. Aí então resolvi apelar pra o forum.
Não estou achando esse bug, mas creio que eu tenha errado na forma de passar e de retornar os valores
para as funções.
segue o código.
#include <stdio.h>
/*Programa Monte seu carro e veja quanto deu*/
/*O programa consiste em 4 funções, uma para escolha do modelo, outra para
escolha da cor do carro, e outra para escolha dos acessorios, tendo esta
ultima um loop para escolha de masi de um acessorio.*/
int modelo(int valCar){
int mod;
printf ("\n==========");
printf ("\n Modelo ");
printf ("\n==========");
do{
printf ("\n1-Celta\n2-Gol\n3-Palio\n4-Corsa\n5-Fox\n6-Montana\n7-Vectra\n8-Corola\n9-Civic\n\nEscolha o modelo de acordo com o numero correspondente: ");
scanf ("%i",&mod);
fflush (stdin);
if (mod==1){
valCar=27800;
printf ("Celta = R$27800");}
else if (mod==2){
valCar=32490;
printf ("Gol = R$32490");}
else if (mod==3){
valCar=32240;
printf ("Palio = R$32240");}
else if (mod==4){
valCar=30690;
printf ("Corsa = R$30690");}
else if (mod==5){
valCar=38400;
printf ("Fox = R$38400");}
else if (mod==6){
valCar=32445;
printf ("Montana = R$32445");}
else if (mod==7){
valCar=53444;
printf ("Vectra = R$53444");}
else if (mod==8){
valCar=65945;
printf ("Corola = R$65945");}
else if (mod==9){
valCar=73994;
printf ("Civic = R$73994");}
printf ("\n\nTem certeza que este é o carro o qual voce dejesa montar?\n1-sim\n2-não\nDigite a resposta correspondente ao numero: ");
scanf ("%i",&mod);
fflush (stdin);
}while (mod==2);
return valCar;
getchar();
}
/*OBS: Mostrar o valor do carro selecionado no final do MAIN*/
int cor(int valCor){
int tipo, cor;
printf ("\n=======");
printf ("\n Cor ");
printf ("\n=======");
do{
printf ("\n\n1-Solido\n2-Metalico\n3-Perolado\n\nEscolha o tipo de cor que deseja para o seu carro de acordo com os numeros: ");
scanf ("%i",&tipo);
fflush (stdin);
if (tipo==1){
printf ("\nTipo da cor escolhida: Solido");
valCor = valCor;
printf ("\n1-Branco\n2-Amarelo\n3-Verde\n4-Roza\n5-Vermelho\n6-Azul\n7-Preto\nEscolha a cor de acordo com os numeros: ");
scanf ("%i",&cor);
fflush (stdin);
if (cor==1 || cor==7)
valCor = valCor;
else if (cor>=2 && cor<=6)
valCor = valCor + 50;
}
else if (tipo==2){
printf ("\nTipo da cor escolhida: Metalico");
valCor = 800;
printf ("\n1-Branco\n2-Amarelo\n3-Verde\n4-Roza\n5-Vermelho\n6-Azul\n7-Preto\nEscolha a cor de acordo com os numeros: ");
scanf ("%i",&cor);
fflush (stdin);
if (cor==1 || cor==7)
valCor = valCor;
else if (cor>=2 && cor<=6)
valCor = valCor + 120;
}
else{
printf ("\nTipo da cor escolhida: Perolado");
valCor = 1367;
printf ("\n1-Branco\n2-Amarelo\n3-Verde\n4-Roza\n5-Vermelho\n6-Azul\n7-Preto\nEscolha a cor de acordo com os numeros: ");
scanf ("%i",&cor);
fflush (stdin);
if (cor==1 || cor==7)
valCor = valCor;
else if (cor>=2 && cor<=6)
valCor = valCor + 230;
}
printf ("\n\nTem certeza que esta é a cor que voce dejesa para do seu carro?\n1-sim\n2-não\nDigite a resposta correspondente ao numero: ");
scanf ("%i",&tipo);
fflush (stdin);
}while (tipo==2);
return valCor;
getchar();
}
int acessorios(int portas, int vidros, int travas, int ar, int rodas, int cambio, int alarme, int direcao){
int conf;
printf ("\n==============");
printf ("\n Acessorios ");
printf ("\n==============");
do{
printf ("\n\nVoce deseja que o carro tenha 2 ou 4 portas?\nDigite 2 ou 4: ");
scanf ("%i",&portas);
fflush (stdin);
if (portas==2)
portas = 0;
else if (portas==4)
portas = 800;
printf ("\nDeseja vidros Eletricos ou Manuais?\n1-Eletricos\n2-Manuais\nEscolha: ");
scanf ("%i",&vidros);
fflush (stdin);
if (vidros==1)
vidros = 400;
else if (vidros==2)
vidros = 0;
printf ("\nDeseja travas Eletricas em Nenhuma, nas 2 da frente ou nas 4 portas?\n0-Nenhuma\n2-Duas portas da frente\n4-Nas 4 quatro portas\nEscolha: ");
scanf ("%i",&travas);
fflush (stdin);
if (travas==0)
travas = 0;
else if (travas==2)
travas = 266;
else if (travas==4)
travas = 500;
printf ("\nVoce deseja que seu carro tenha Ar Condicionado?\n1-Sim\n2-não\nEscolha: ");
scanf ("%i",&ar);
fflush (stdin);
if (ar==1)
ar = 170;
else if (ar==2)
ar = 0;
printf ("\nDeseja que seu carro tenha Rodas de liga leve?\n1-Sim\n2-não\nEscolha: ");
scanf ("%i",&rodas);
fflush (stdin);
if (rodas==1){
printf ("\nDeseja que o Aro seja 14'', 15'' ou 17''?\nDigite 14, 15 ou 17: ");
scanf ("%i",&rodas);
fflush (stdin);
if (rodas==14)
rodas = 900;
else if (rodas==15)
rodas = 1300;
else if (rodas==17)
rodas = 1890;
}
printf ("\nDeseja que seu carro tenha alarme de fabrica?\n1-Sim\n2-não\nEscolha: ");
scanf ("%i",&alarme);
fflush (stdin);
if (alarme==1)
alarme = 200;
else
alarme = 0;
printf ("\nDeseja que seu carro tenha drirecao mecanica ou hidraulica?\n1-Mecanica\n2-Hidraulica\nEscolha:");
scanf ("%i",&direcao);
fflush (stdin);
if (direcao==1)
direcao = 0;
else if (direcao==2)
direcao = 300;
printf ("Tem certeza de que os acessorios que deseja são os que escolheu?\n1-Sim\n2Nao\nEscolha: ");
scanf ("%i",&conf);
fflush (stdin);
}while(conf==2);
return portas,vidros,travas,ar,rodas,alarme,direcao;
getchar();
}
void main(){
int valCar, valCor, portas, vidros, travas, ar, rodas, cambio, alarme, direcao, cond;
do{
printf ("\n/=====================\\ ");
printf ("\n| Monte Seu Carro |");
printf ("\n| ver. 0.1 |");
printf ("\n\\=====================/");
printf ("\n\n\n\nEscolha o modelo do seu carro");
modelo(valCar);
printf ("\n\nEscola a cor do seu carro");
cor(valCor);
printf ("\n\nEscolha os acessorios");
acessorios(portas, vidros, travas, ar, rodas, cambio, alarme, direcao);
printf ("\n\nValor do carro: %i\nValor da cor: %i\nValor dos acessorios: %i",valCar,valCor,portas+vidros+travas+ar+rodas+alarme+direcao);
printf ("\n\nDeseja executar o programa novamente?\n1-Sim\n2-não\nEscolha: ");
scanf ("%i",&cond);
fflush (stdin);
}while (cond==1);
getchar();
}
Pergunta
Léo Unicap
Galera, fiz um programa em C com o seguinte objetivo.
O usuário escolhe um carro e monta de acordo com seu gosto, depois por quando sai o carro.
Fiz 3 funções:
1 - Modelo, onde o usuario escolhe o carro desejado.
2- Cor, onde o usuario escolhe a cor do carro.
3- Acessórios, onde o usuario escolhe os acessórios do veículo.
Compilei o programa, até aí tudo bem, mas quando me foram mostrados os valores no fim do
programa, estavam todos absurdamente errados.
Li e reli o meu código varias vezes sem sucesso. Aí então resolvi apelar pra o forum.
Não estou achando esse bug, mas creio que eu tenha errado na forma de passar e de retornar os valores
para as funções.
segue o código.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.