Jump to content

problema do troco


msmsms
 Share

Recommended Posts

Construa um programa que determine o menor número de notas e de moedas a

devolver de troco para uma compra inferior a 100 euros.

eu já fiz isto:

int main()
{
    float despesa;
    printf("quanto gastou?");
    scanf("%d", &despesa);
    return 0;

}

Edit: linguagem adicionada (pmg)

Link to comment
Share on other sites

Vais no bom caminho ... mas tens um erro no teu codigo:

a variavel despesa é do tipo float mas no scanf() tentas ler um int (com o "%d") o que é errado. Para leres um float usa "%f".

Além disso, deves sempre usar double quando precisas de variaveis com numeros decimais. Para double, a conversao a usar no scanf() é "%lf".

Falta-te ainda o #include que tem os prototipos das funcoes printf() e scanf().

E o output, normalmente, é "line buffered", o que quer dizer que so aparece depois duma quebra de linha (um '\n'). O que pode acontecer no teu caso é o scanf() comecar a funcionar antes do buffer de output ter sido 'despejado' para o ecra. Tens duas maneiras faceis de resolver esta situacao: ou imprimes um '\n' ou fazes o despejo forcado do buffer.

#include <stdio.h>

int main(void)
{
    double despesa;
    printf("quanto gastou? "); /* "quanto gastou?\n" para forcar o despejo do buffer */
    fflush(stdout); /* despejo forcado do buffer */
    scanf("%lf", &despesa);
    return 0;
}

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

O que percebi é que pretendes um programa que independentemente do valor, o pagamento é feito sempre com uma nota de 100€, certo?

Dessa forma aconselho-te a seguir os seguintes passos:

- subtrair aos 100€ o valor, obtendo o troco;

- ir subtraindo sucessivamente os valores 50, 20, 10 e 5, sempre que o resultado for maior que 0 significa que foi dada uma nota de troco;

- fazer o mesmo para as moedas.

Não te esqueças de utilizar uma variável auxiliar para esses cálculos, para que não alteres o valor do troco em falta; utiliza também contadores para o número de notas e moedas no troco.

Espero ter sido útil.

Link to comment
Share on other sites

O que tu procuras está aqui:

http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=439520

Tens varias formas para te dizer qual é o troco. Eu pessoalmente prefiro a primeira, tens mais código mas mostra-te todos os passos que são feitos. e nos restantes faz exactamente o mesmo.

Espero que seja suficiente. Tirando o exemplo que la coloquei que não faz divisões.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.