msmsms Posted February 21, 2012 at 07:58 AM Report Share #440526 Posted February 21, 2012 at 07:58 AM 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 More sharing options...
pmg Posted February 21, 2012 at 08:28 AM Report Share #440527 Posted February 21, 2012 at 08:28 AM 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 More sharing options...
RiKoNnEcT Posted February 21, 2012 at 05:47 PM Report Share #440580 Posted February 21, 2012 at 05:47 PM Compra inferior a 100€, mas o pagamento é sempre 100€?? Ou seja, mesmo que gastes 0.01€(1 cent) pagas sempre 100€? Link to comment Share on other sites More sharing options...
amsterdam6 Posted February 22, 2012 at 04:15 PM Report Share #440733 Posted February 22, 2012 at 04:15 PM 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 More sharing options...
bcaceiro Posted February 25, 2012 at 10:23 AM Report Share #441115 Posted February 25, 2012 at 10:23 AM Olha que se o tozé te apanhar aqui dá te logo 0 a PPP ! eheh Link to comment Share on other sites More sharing options...
veaoum Posted February 25, 2012 at 05:56 PM Report Share #441140 Posted February 25, 2012 at 05:56 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now