Ir ao conteúdo
  • Cadastre-se

Menor troco possível c# (while)


Posts recomendados

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);

Link para o comentário
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();
        }
    }
}
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...