Ir ao conteúdo
  • Cadastre-se

Problema com código (C)


User_G

Posts recomendados

Ola, estou tendo problemas com meu código. Eu preciso criar uma função que saca o dinheiro de uma conta. A pessoa digitao valor que quer sacar e a saida deve ser o numero de cedulas. Se nao houver notas de 10, por ex, deve haver 2 de 5. Se por ex ele pede pra sacar numeros terminados em 1, 3, 6, 8 deve dar erro por causa das notas (nao ha nota de um real). Se nao houver de 5 por ex, pode haver um combinação, por ex: ele pede pra sacar 8 reais e nao tem notas de 5, sai 4 de 2. Esta quase concluido, mas nao sei o que tem de errado o meu codigo fonte. Deem uma olhada:


int main () //função para o saque em união com o numero de cedulas
{
int numero_de_cedulas100, numero_de_cedulas50, numero_de_cedulas20, numero_de_cedulas10, numero_de_cedulas5, numero_de_cedulas2;
int dinheiro_a_sacar,a,b,c,d,e,f,g;
int total100, total50, total20, total10, total5, total2;
double total;

scanf ("%d", &numero_de_cedulas100);
scanf ("%d", &numero_de_cedulas50 );
scanf ("%d", &numero_de_cedulas20 );
scanf ("%d", &numero_de_cedulas10 );
scanf ("%d", &numero_de_cedulas5 );
scanf ("%d", &numero_de_cedulas2 );


scanf ("%d", &dinheiro_a_sacar);

a = dinheiro_a_sacar;

b = a/100;

if (a>=100) {

if (b<=numero_de_cedulas100){
printf ("%d x R$100,00 + ",;
a = a - 100*b;}
else{
printf ("%d x R$100,00 + ", numero_de_cedulas100);
a = a - 100*numero_de_cedulas100;}

}


c = a/50;

if (a>=50) {

if (c<=numero_de_cedulas50){
printf ("%d x R$50,00 + ",c);
a = a - 50*c;}
else{
printf ("%d x R$50,00 + ", numero_de_cedulas50);
a = a - 50*numero_de_cedulas50;}

}

d = a/20;

if (a>=20) {

if (d<=numero_de_cedulas20){
printf ("%d x R$20,00 + ",d);
a = a - 20*d;}
else{
printf ("%d x R$20,00 + ", numero_de_cedulas20);
a = a - 20*numero_de_cedulas20;}

}

e = a/10;

if (a>=10) {

if (e<=numero_de_cedulas10){
printf ("%d x R$10,00 + ",e);
a = a - 10*e;}
else{
printf ("%d x R$10,00 + ", numero_de_cedulas10);
a = a - 10*numero_de_cedulas10;}

}

f = a/5;

if (a>=5) {

if (f<=numero_de_cedulas5){
printf ("%d x R$5,00 + ",f);
a = a - 5*f;}
else{
printf ("%d x R$5,00 + ", numero_de_cedulas5);
a = a - 5*numero_de_cedulas5;}

}

g = a/2;

if (a>=2) {

if (g<=numero_de_cedulas2){
printf ("%d x R$2,00",g);
a = a - 2*g;}
else{
printf ("%d x R$2,00", numero_de_cedulas2);
a = a - 2*numero_de_cedulas2;}

}


printf ("8000");


system ("PAUSE");

}

Valeu. Qualquer duvida eu respondo ae. Se tiverem alguma ideia para melhorar o algoritimo sera bem vinda

Link para o comentário
Compartilhar em outros sites

É o seguinte, estou fazendo um trabalho parecido com o seu, porém o meu código não precisa limitar o número de notas, então você pode fazer da seguinte forma.

a alimentação das notas você faz direto no programa através das variaveis

por exemplo

nota50= 100

nota20= 200

e assim por diante.

dai quando o usuário sacar ele devolve o dinheiro para o usuário e desconta das notas para saque fiz da seguinte forma

{

n50=valor/50;

resto=valor%50;

n10=resto/10;

resto=resto%10;

n5=resto/5;

resto=resto%5;

n1=resto;

printf("nota B$50: %d\nnota B$10: %d\nnota B$5: %d\nnota B$1: %d\n",n50,n10,n5,n1);

}

você pode colar para a nota50 receber ela mesma menos n50;

depois fica simples, é só criar alguns IF's com a lógica para a falta de cada nota

utilizando a logica acima.

espero ter ajudado.

abraço.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!