Ir para conteúdo
Fórum Script Brasil

Dorns

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Dorns postou

  1. Olá pessoal, eu estou com uma dúvida nesse código. Na hora de executar ele apresenta alguns valores certos e roda corretamente, por exemplo, se eu digito 91.01 ele imprime os valores corretamente. Porém se eu digitar 0.11 ou 0.06 ele mostra faltando 1 centavo. Alguém pode me ajudar a encontrar o erro? Já fiz de tudo, inclusive já sei da possibilidade de separar o valor das notas e moedas em 2 inteiros e trabalhar apenas com valores inteiros, porém quero saber como faço para dar o resultado correto trabalhando com double mesmo. Eis o código: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ double valor, resto; int qtd_100, qtd_50, qtd_20, qtd_10, qtd_5, qtd_2; int qtd_1, qtd_050, qtd_025, qtd_010, qtd_005, qtd_001; scanf("%lf", &valor); qtd_100 = valor / 100; resto = fmod(valor, 100); qtd_50 = abs(resto / 50); resto = fmod(resto, 50); qtd_20 = abs(resto / 20); resto = fmod(resto, 20); qtd_10 = abs(resto / 10); resto = fmod(resto, 10); qtd_5 = abs(resto / 5); resto = fmod(resto, 5); qtd_2 = abs(resto / 2); resto = fmod(resto, 2); printf("NOTAS:\n"); printf("%d nota(s) de R$ 100.00\n", qtd_100); printf("%d nota(s) de R$ 50.00\n", qtd_50); printf("%d nota(s) de R$ 20.00\n", qtd_20); printf("%d nota(s) de R$ 10.00\n", qtd_10); printf("%d nota(s) de R$ 5.00\n", qtd_5); printf("%d nota(s) de R$ 2.00\n", qtd_2); qtd_1 = abs(resto); resto = fmod(resto, 1); qtd_050 = abs(resto / 0.5); resto = fmod(resto, 0.5); qtd_025 = abs(resto / 0.25); resto = fmod(resto, 0.25); qtd_010 = abs(resto / 0.1); resto = fmod(resto, 0.1); qtd_005 = abs(resto / 0.05); resto = fmod(resto, 0.05); qtd_001 = abs(resto / 0.01); printf("MOEDAS:\n"); printf("%d moeda(s) de 1.00\n", qtd_1); printf("%d moeda(s) de 0.50\n", qtd_050); printf("%d moeda(s) de 0.25\n", qtd_025); printf("%d moeda(s) de 0.10\n", qtd_010); printf("%d moeda(s) de 0.05\n", qtd_005); printf("%d moeda(s) de 0.01\n", qtd_001); return 0; }
×
×
  • Criar Novo...