Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Saymmon

programa de consecionaria de carro

Recommended Posts

nesse programa tem o cliente tem que escolher o carro,iformar o valor e o programa tem mostra tudo isso no final e o numero devezes que ele sera financiado.

 

Alguem pode me falar o que esta errado

 

main()

{

 

float carro,valor,financ,total;

int novo,usado,escolha;

char nome;

 

printf ("\nEscolha sua opcao de carro :1 Novo||2 Usado\n");

scanf("%f",&escolha);

 

if (escolha=1)

{

printf("Digite o nome do carro escolhido :");

scanf("%s",&nome);

 

printf("Digite o valor do carro");

scanf("%f",&valor);

}

 

else if (valor < 15.000)

{

printf("Nao ha finaciamento");

}

 

else if ((valor > 15.001) &&(valor <30.000))

{

financ=(valor/24);

total=financ;

}

else if ((valor >30.001 )&&(valor <60.000))

{

financ=(valor/48);

total=financ;

}

 

else if (valor >60.001)

{

financ=(valor/60);

total=financ;

}

printf("O carro escolhido foi %s ",nome);

printf(" O valor dele eh %f ",valor);

printf("Ele sera fianciado em %f X e o valor sera de %f " ,financ,total);

 

if (escolha = 2)

{

 

printf("Digite o nome do carro escolhido :");

scan("%s",&nome);

 

printf("Digite o valor do carro");

scanf("%f",&valor);

}

 

else if (valor < 15.000)

{

printf("Nao ha finaciamento");

}

 

else if ((valor > 15.001) &&(valor <30.000))

{

financ=(valor/24);

total=financ;

}

else if ((valor >30.001 )&&(valor <60.000))

{

financ=(valor/48);

total=financ;

}

 

else if (valor >60.001)

{

financ=(valor/60);

total=financ;

}

printf("O carro escolhido foi %s ",nome);

printf(" O valor dele eh %f ",valor);

printf("Ele sera fianciado em %f X e o valor sera de %f " ,financ,total);

 

 

getch();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente:

Qual a diferença entre um carro novo ou usado?

 

Pelo código, ambos possuem o mesmo cálculo pelo seu código, e a única coisa definida pelo recebimento da opção novo/usado é isso:

if (escolha=1)
{
printf("Digite o nome do carro escolhido :");
scanf("%s",&nome);

printf("Digite o valor do carro");
scanf("%f",&valor);
}

 

 

E isso:

if (escolha = 2)
{ 

printf("Digite o nome do carro escolhido :");
scan("%s",&nome);

printf("Digite o valor do carro");
scanf("%f",&valor);
}

 

 

Repare que ambas as opções farão a mesma coisa:

Receber o nome do carro escolhido e o seu valor, não sendo necessário a utilização de uma estrutura de decisão (nem mesmo da variável "escolha").

 

Caso houvesse alguma diferença entre os cálculos, todos os códigos referentes ao carro novo deveriam estar dentro do if da escolha 1, e o mesmo para os usados (if da escolha 2).

 

Vale lembrar que o operador que verifica a igualdade entre valores e/ou variáveis na linguagem C é o "==" (sem aspas), o operador "=" é o operador de atribuição (usado para guardar algo em uma variável). Ou seja, nos IFs o correto seria verificar "escolha == 1", caso a escolha realmente fosse importante.

 

Outro detalhe é que após os IFs da escolha você repete exatamente o mesmo código das parcelas, algo desnecessário.

O detalhe que possivelmente não deixa seu código exibir o funcionamento (o que lhe permitiria identificar erros de lógica ao rodá-lo) é a estrutura do seus IFs, pois ao receber uma escolha e informar 1 ou 2, seu programa receberá o nome e o valor do carro, e não fará mais nada (os Else If só ocorrem quando a condição do If é falsa).

 

As variáveis "carro", "novo" e "usado" são declaradas mas não são usadas em parte alguma do código, sendo desnecessárias (tal qual a "escolha", que apesar de ser usada, não é necessária para o funcionamento do código, como explicado acima).

 

O variável do tipo "char" só pode armazenar um único caractere, sendo necessário criar um vetor (matriz unidimensional) de caracteres para armazenar um nome, como você deseja.

 

Por fim, verifique as condições dos IFs relativas ao valor do carro, pois elas ignoram alguns preços (15 mil, 30 mil e 60 mil).

 

Abraços ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.