1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em C

Discussão em 'Programação' iniciada por figboy, 10 de Outubro de 2017. (Respostas: 22; Visualizações: 566)

  1. figboy

    figboy I folded Myself

    Boa tarde a todos. Comecei agora num curso de engenharia de redes e estou a ter dificuldades a resolver um exercicio em C. Basicamente tenho de fazer um programa que me diga quantas notas tenho de dar (notas de 20, 10, e moedas de 1) para determinada quantia.
    Já escrevi o código mas não me dá resultado nenhum, não consigo perceber se é o código ou o raciocinio que está mal, se me puderem ajudar agradeço já que sou completamente noob nisto

    Código:
    #include <stdio.h>
    int main () {
    int a,b,c,d,e;
    b=(a/20);
    c=((a%20)/10);
    d=((a%20)%(10))/5;
    e=(((a%20)%(10))&5)/1;
    printf("Inserir quantia em EUR:");
    scanf("Quantia: %d",&a);
    printf("Notas de 20:%d\n",b);
    printf("Notas de 10: %d\n",c);
    printf("Notas de 5: %d\n",d);
    printf("Moedas de 1: %d\n",e);

    return 0;
    }


    Obrigado desde já
     
  2. #include <stdio.h>
    int main () {
    int a,b,c,d,e;
    printf("Inserir quantia em EUR:");
    scanf("Quantia: %d",&a);
    b=(a/20);
    c=((a%20)/10);
    d=((a%20)%(10))/5;
    e=(((a%20)%(10))&5)/1;
    printf("Notas de 20:%d\n",b);
    printf("Notas de 10: %d\n",c);
    printf("Notas de 5: %d\n",d);
    printf("Moedas de 1: %d\n",e);

    return 0;
    }

    Se estás a ler um numero da consola, como queres fazer calculos com esse numero se ainda não tinhas lido da consola (scanf no final)?
    Quanto ao C em si já não me lembro bem porque já não mexo nele há alguns anos, mas como tinhas não ia funcionar de certeza.
     
  3. GTAsky

    GTAsky Power Member

  4. figboy

    figboy I folded Myself

    Yap, entrentanto no face já me responderam
     
  5. Pr0zIn

    Pr0zIn Power Member

    Nao podes fazer as contas sem antes leres o valor!
     
  6. figboy

    figboy I folded Myself

    Sim já percebi que era esse o erro, obrigado :)
     
  7. GTAsky

    GTAsky Power Member

    muda de curso enquanto podes xD
     
  8. figboy

    figboy I folded Myself

  9. GTAsky

    GTAsky Power Member

    Demasiado complicado, so meia duzia de profes é que prestam e desses so metade se interessam se estas a aprender ou não... Eu se soubesse o que sei hoje, tinha saido no primeiro ano.. mas fui burro e deixei-me ir ficando...
     
  10. figboy

    figboy I folded Myself

    Obrigado pelo feedback. Vamos ver como corre
     
  11. rastiff

    rastiff Power Member

    /offtopic

    (desculpem o offtopic)

    estás a falar do curso de redes ou de CC? (embora fales dos professores e esses sejam partilhados)
    O de CC nunca tive uma impressão muito espectacular mas o de redes achava que era bom... Na altura em que tirei o curso estava indeciso entre Eng.Inf. e este de redes na fcup e acabei por ir tirar EI, mas estive mesmo tentado.
     
  12. GTAsky

    GTAsky Power Member

    Ele é bom, mas para o acabares... E depois apoio so tens de alguns profs, a maioria nao quer saber
     
  13. |pr3t3nd3r|

    |pr3t3nd3r| Power Member

    Desculpem lá, mas não é suposto um curso universitário ser um bocado difícil?
    Também tirei redes lá, e quando entrei também me disseram o mesmo, "isto é o fim do mundo", "vais ficar cá 8 anos a fazer analise infinitesimal", "é bue difícil"... pah, é difícil, mas não é super complicado, e os professores que podiam ser os mais lixados e mais desligados já foram.
    Fiz redes em 5 anos, e fui muito para a borga e afins... Não acabei com "nótão" mas também não acabei com 10, o curso é fazível e tens tempo para tudo e os prof se "os souberes levar" ajudam-te na boa e não te colocam entraves, muito pelo contrario.

    E acredita, o curso é bastante "respeitado" no mercado de trabalho, pelo menos pela zona do porto.

    PS: o Rogério é muito bom prof, acredita (apesar de não gostar muito da área de investigação e da matéria das cadeiras dele) ;)
     
  14. figboy

    figboy I folded Myself

    Obrigado aos dois pela info. Antes de entrar já sabia que ia ser dificil. Tenho de me aplicar e ver se consigo fazer o curso. Até agora a maior parte até estou a gostar.

    Ps: Estou em redes
     
  15. GTAsky

    GTAsky Power Member


    parebéns, percentes aos 5% dos alunos que faz o curso em 5 anos
     
  16. |pr3t3nd3r|

    |pr3t3nd3r| Power Member

    Não é questão de parabéns, o que sempre me deixou "lixado" era o pessoal incutir logo na cabeça dos caloiros que o curso é impossível de fazer em 5 anos, e existir demasiado a mentalidade "faço para o ano".

    @figboy Se precisares de material ou mais informações sobre curso e professores, etc. manda PM.
     
  17. figboy

    figboy I folded Myself

    Muito obrigado pela disponibilidade e ajuda
     
  18. Voltando à pergunta inicial, existe uma forma mais elegante de resolver o problema:

    [​IMG]

    Edit: a linha 11 pode ser substituida por:
    total %= denom[ i ];

    Sempre fica melhor :)
     
    Última edição: 15 de Outubro de 2017
  19. figboy

    figboy I folded Myself

  20. Proponho esta solucao simpatica que percebe se ha pagamentos a fazer, se o valor a usar cobre..
    Caso pretenda apenas fazer troco de dinheiro, basta que diga q valor a pagar é 0.

    espero ajudar...

    "
    # include <stdio.h>

    int main()
    {

    int price, amount, change;
    int twenty, ten, coin;

    printf("Introduza a quantia a pagar: ");
    if ( scanf ("%d", &price) <1 || price <0) {
    printf("\n\nValor errado, tente novamente: ");return 0;
    }
    pay: printf("\nIntroduza a quantia com que pretende efectuar o pagamento : ");
    if ( scanf ("%d", &amount) <1 || amount <0) {
    printf("\n\nValor errado, tente novamente: ");return 0;
    }
    change = amount - price;
    if (change < 0) {
    printf("\n\nO valor a pagar é superior ao pagamento.\n");
    goto pay;
    }
    twenty = change / 20;
    ten = (change % 20) / 10;
    coin = ((change % 20) % 10) / 1;
    printf ( "\n\nO troco será %d €\n\n%5d .... notas de 20 €\n\n%5d .... notas de 10 €\n\n%5d .... moedas de 1 €", change, twenty, ten, coin);

    return 0;
    }

    "
     

Partilhar esta Página