Ir ao conteúdo
  • Cadastre-se

C Contador de cédulas - caixa eletrônico


Posts recomendados

Boa tarde. Preciso fazer um código que receba a quantidade de cédulas e moedas do usuário, depois seja mostrada a decomposição do valor de acordo com o estoque do caixa. Eu fiz um código, mas ele dá alguns erros às vezes. Por exemplo: quando se digita o valor de mil reais ou alguns centavos "quebrados". Desculpas pelo tamanho do código.

 

Código:

#include<stdio.h>


void main(){
    

    int b;
    float c;
    int n200 = 0;
    int n100 = 0;
    int n50 = 0;
    int n20 = 0;
    int n10 = 0;
    int n5 = 0;
    int n2 = 0;
    int m1 = 0;
    int m050 = 0;
    int m025 = 0;
    int m010 = 0;
    int m005 = 0;
    int m001 = 0;

    printf("Caixa de cédulas");
    printf("\n\nInsira o valor inteiro: R$ ");
    scanf("%d", &b);
    printf("\nInsira o valor das moedas: R$ ");
    scanf("%f", &c);
  
    while (1){
    while (b >= 200){
            n200++;
                b = b - 200;
    }
    while (b >= 100){
        n100++;
            b = b - 100;
    }
    while (b >= 50){
        n50++;
            b = b - 50;
    }
    while (b >= 20){
        n20++;
            b = b - 20;
    }
    while (b >= 10){
        n10++;
            b = b - 10;
    }
    while (b >= 5){
        n5++;
            b = b - 5;

    }
    while (b >= 2){
        n2++;
            b = b - 2;
    }
    while (b >= 1){
        m1++;
            b = b - 1;
    }
    while (c >= 0.5){
        m050++;
            c = c - 0.5;
    }
    while (c >= 0.25){
        m025++;
            c = c - 0.25;
    }
    while (c >= 0.1){
        m010++;
            c = c - 0.1;
    }
    while (c >= 0.05){
        m005++;
            c = c - 0.05;
    }
    while (c >= 0.01){
        m001++;
            c = c - 0.01;
    }


    if (n200 > 4){
        printf("\nNão temos notas de R$ 200 suficientes", n200);
    }
    else {
    printf("\nA quantidade de notas de R$ 200 é: %d", n200);
        }

    if (n100 > 2){
        printf("\nNão temos notas de R$ 100 suficientes", n100);
    }
    else {
    printf("\nA quantidade de notas de R$ 100 é: %d", n100);
        }

    if (n50 > 3){
        printf("\nNão temos notas de $$ 50 suficientes", n50);
    }
    else {
    printf("\nA quantidade de notas de R$ 50 é: %d", n50);
        }

    if (n20 > 3){
        printf("\nNão temos notas de R$ 20 suficientes", n20);
    }
    else {
    printf("\nA quantidade de notas de R$ 20 é: %d", n20);
        }

    if (n10 > 4){
        printf("\nNão temos notas de R$ 10 suficientes", n10);
    }
    else {
    printf("\nA quantidade de notas de R$ 10 é: %d", n10);
        }

    if (n5 > 2){
        printf("\nNão temos notas de R$ 5 suficientes", n5);
    }
    else {
    printf("\nA quantidade de notas de R$ 5 é: %d", n5);
        }

    if (n2 > 3){
        printf("\nNão temos notas de R$ 2 suficientes", n2);
    }
    else {
    printf("\nA quantidade de notas de R$ 2 é: %d", n2);
        }

    if (m1 > 5){
        printf("\nNão temos moedas de R$ 1 suficientes", m1);
    }
    else {
    printf("\nA quantidade de moedas de R$ 1 é: %d", m1);
        }

    if (m050 > 6){
        printf("\nNão temos moedas de R$ 0.50 suficientes", m050);
    }
    else {
    printf("\nA quantidade de moedas de R$ 0.50 é: %d", m050);
        }

    if (m025 > 4){
        printf("\nNão temos moedas de R$ 0.25 suficientes", m025);
    }
    else {
    printf("\nA quantidade de moedas de R$ 0.25 é: %d", m025);
        }

    if (m010 > 3){
        printf("\nNão temos moedas de R$ 0.10 suficientes", m010);
    }
    else {
    printf("\nA quantidade de moedas de R$ 0.10 é: %d", m010);
        }
    if (m005 > 8){
        printf("\nNão temos moedas de R$ 0.05 suficientes", m005);
    }
    else {
    printf("\nA quantidade de moedas de R$ 0.05 é: %d", m005);
        }
    if (m001 > 7){
        printf("\nNão temos moedas de R$ 0.01 suficientes", m001);
    }
    else {
    printf("\nA quantidade de moedas de R$ 0.01 é: %d", m001);
        }

    return 0;

}
}

 

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

@vini_seven Quando se digita mil reais por exemplo, se entende que não é possível, pois na teoria, teria que ter mais de 4 notas de 200 reais. Mas é possível se for 4 notas de R$200 e 2 de R$100, por exemplo. Está acontecendo algum erro na hora de decomposição, mas não consigo encontrar.

erro.PNG

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!