Ir ao conteúdo
  • Cadastre-se
Marcos Ivo Peruzzo

Menor troco possível c# (while)

Recommended Posts

Na hora de mostrar o troco o contador não está contando, não sei aonde está errado. 

 

static void Main(string[] args)
        {
            int t5,t2,t1,m5,m25,m10,m05,m1;
            double pago,troco,produ,falt;

            troco = 0;
            produ = 0;
            pago = 0;
            falt = 0;
            t5 = 0;
            t2 = 0;
            t1 = 0;
            m5 = 0;
            m25 = 0;
            m10 = 0;
            m05 = 0;
            m1 = 0;
            

            Console.WriteLine("Digite o valor do produto");
            produ = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Digite o pagamento");
            pago = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            troco = produ - pago;

            if (produ > pago)
            {
                falt = produ - pago;
                Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                Console.WriteLine("Valor pago: R$ {0}", pago);
                Console.WriteLine("Faltam: R$ {0}",falt);
            }

            else if (produ == pago)
            {
                Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                Console.WriteLine("Valor pago: R$ {0}", pago);
                Console.WriteLine("Não existe troco!");
            }

            else
            { 
                while (troco >= 5)
                {                   
                    troco -= 5;                   
                    t5++;
                }

                while (troco >= 2)
                {                   
                    troco -= 2;                    
                    t2++;                   
                }
               
                while (troco >=1)
                {                    
                    troco -= 1;                    
                    t1++;                   
                }
                
                while (troco >= 0.50)
                {                    
                    troco -= 0.50;                   
                    m5++;                   
                }
                
                while (troco >= 0.25)
                {                    
                    troco -= 0.25;                    
                    m25++;                    
                }
                
                while (troco >= 0.10)
                {                    
                    troco -= 0.10;                    
                    m10++;                   
                }

                while (troco >= 0.05)
                {
                    troco -= 0.05;
                    m05++;
                }

                while (troco >= 0.01)
                {
                    troco -= 0.01;
                    m1++;  
                }

                Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                Console.WriteLine("Valor pago: R$ {0}", pago);
                Console.WriteLine("Valor do troco: R$ {0}", troco);
                Console.WriteLine("{0} Nota(s) de: R$ 5,00 reais", t5);
                Console.WriteLine("{0} Nota(s) de: R$ 2,00 reais", t2);
                Console.WriteLine("{0} Moeda(s) de: R$ 1,00 real", t1);
                Console.WriteLine("{0} Moeda(s) de: R$ 0,50 centavos", m5);
                Console.WriteLine("{0} Moeda(s) de: R$ 0,25 centavos", m25);
                Console.WriteLine("{0} Moeda(s) de: R$ 0,10 centavos", m10);
                Console.WriteLine("{0} Moeda(s) de: R$ 0,05 centavos", m05);
                Console.WriteLine("{0} Moeda(s) de: R$ 0,01 centavos", m1);
            }            
            Console.ReadKey();

 

 

 

CMD.png

 

Tirei o if para tentar arrumar mas não achei o erro. 

Ficaria assim \/

if (t5>0) Console.WriteLine("{0} Nota(s) de: R$ 5,00 reais", t5);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deveria ser

Citação

troco = pago - produ;

E nao

Citação

troco = produ - pago;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado MassakiMsk, arrumei o código e ficou assim no final.

 

 

namespace Lojatroco
{
    class Program
    {
        static void Main(string[] args)
        {
            int t5,t2,t1,m5,m25,m10,m05,m1;
            double pago,troco,produ,falt;

            troco = 0.0;
            produ = 0.0;
            pago = 0.0;
            falt = 0.0;
            t5 = 0;
            t2 = 0;
            t1 = 0;
            m5 = 0;
            m25 = 0;
            m10 = 0;
            m05 = 0;
            m1 = 0;
            

            Console.WriteLine("Digite o valor do produto");
            produ = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("Digite o pagamento");
            pago = Convert.ToDouble(Console.ReadLine());
            Console.Clear();

            

            if (produ > pago)
            {
                falt = produ - pago;
                Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                Console.WriteLine("Valor pago: R$ {0}", pago);
                Console.WriteLine("Faltam: R$ {0}",falt);
            }

            else if (produ == pago)
            {
                Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                Console.WriteLine("Valor pago: R$ {0}", pago);
                Console.WriteLine("Não existe troco!");
            }

            else
                troco = pago - produ;
            { 
                while (troco >= 5)
                {                   
                    troco -= 5;                   
                    t5++;
                }

                while (troco >= 2)
                {                   
                    troco -= 2;                    
                    t2++;                   
                }
               
                while (troco >=1)
                {                    
                    troco -= 1;                    
                    t1++;                   
                }
                
                while (troco >= 0.50)
                {                    
                    troco -= 0.50;                   
                    m5++;                   
                }
                
                while (troco >= 0.25)
                {                    
                    troco -= 0.25;                    
                    m25++;                    
                }
                
                while (troco >= 0.10)
                {                    
                    troco -= 0.10;                    
                    m10++;                   
                }

                while (troco >= 0.05)
                {
                    troco -= 0.05;
                    m05++;
                }

                while (troco >= 0.01)
                {
                    troco -= 0.01;
                    m1++;  
                }

                if (pago > produ) Console.WriteLine("Valor da mercadoria: R$ {0}", produ);
                if (pago > produ) Console.WriteLine("Valor pago: R$ {0}", pago);
                if (pago > produ) Console.WriteLine("Valor do troco: R$ {0}", (pago-produ));
                if (t5 > 0) Console.WriteLine("{0} Nota(s) de: R$ 5,00 reais", t5);
                if (t2 > 0) Console.WriteLine("{0} Nota(s) de: R$ 2,00 reais", t2);
                if (t1 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 1,00 real", t1);
                if (m5 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 0,50 centavos", m5);
                if (m25 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 0,25 centavos", m25);
                if (m10 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 0,10 centavos", m10);
                if (m05 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 0,05 centavos", m05);
                if (m1 > 0) Console.WriteLine("{0} Moeda(s) de: R$ 0,01 centavos", m1);

            }
            Console.ReadKey();
        }
    }
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×