Gaaah 0 Denunciar post Postado Outubro 15, 2009 Tenho que fazer um programa que receba um numero qualqer de 0 a 1500 e o programa responda por extenso e em reais, a maior parte do problema eu ja fiz....mas nao to conseguindo pensar em uma logica que imprima o programa em reais e centavos, me ajudem por favor...ai vai o que eu fiz: #include <stdio.h> int main () { float a; printf ("Digite um numero de 1 a 1500:\n"); scanf ("%f", &a); if (a>1500) printf ("O numero deve ser menor do que 1500\n"); else { if (a>=1000) { printf ("mil "); a=a-1000; } if (a>=100) if (a>=900) { printf ("novecentos "); a=a-900; } else if (a>=800) { printf ("oitocentos "); a=a-800; } else if (a>=700) { printf ("setecentos "); a=a-700; } else if (a>=600) { printf ("seiscentos "); a=a-600; } else if (a>=500) { printf ("quinhentos "); a=a-500; } else if (a>=400) { printf ("quatrocentos "); a=a-400; } else if (a>=300) { printf ("trezentos "); a=a-300; } else if (a>=200) { printf ("duzentos "); a=a-200; } else if (a>=100) { printf ("cem "); a=a-100; } if (a>=10) if (a>=90) { printf ("noventa "); a=a-90; } else if (a>=80) { printf ("oitenta "); a=a-80; } else if (a>=70) { printf ("setenta "); a=a-70; } else if (a>=60) { printf ("sessenta "); a=a-60; } else if (a>=50) { printf ("cinquenta "); a=a-50; } else if (a>=40) { printf ("quarenta "); a=a-40; } else if (a>=30) { printf ("trinta "); a=a-30; } else if (a>=20) { printf ("vinte "); a=a-20; } else if (a>=10) { printf ("dez "); a=a-10; } if (a>=1) if (a>=9) { printf ("nove "); a=a-9; } else if (a>=8) { printf ("oito "); a=a-8; } else if (a>=7) { printf ("sete "); a=a-7; } else if (a>=6) { printf ("seis "); a=a-6; } else if (a>=5) { printf ("cinco "); a=a-5; } else if (a>=4) { printf ("quatro "); a=a-4; } else if (a>=3) { printf ("tres "); a=a-3; } else if (a>=2) { printf ("dois "); a=a-2; } else if (a>=1) { printf ("um "); a=a-1; } if (a>0,00) if (a>=0,90) { printf ("noventa "); a=a-0,90; } else if (a>=0,80) { printf ("oitenta "); a=a-0,80; } else if (a>=0,70) { printf ("setenta "); a=a-0,70; } else if (a>=0,60) { printf ("sessenta "); a=a-0,60; } else if (a>=0,50) { printf ("cinquenta "); a=a-0,50; } else if (a>=0,40) { printf ("quarenta "); a=a-0,40; } else if (a>=0,30) { printf ("trinta "); a=a-0,30; } else if (a>=0,20) { printf ("vinte "); a=a-0,20; } else if (a>=0,10) { printf ("dez "); a=a-0,10; } } fflush (stdin); getchar (); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 15, 2009 http://forum.imasters.com.br/index.php?/topic/365447-mostrar-numeros-escritos-por-extenso/ Não use fflush(stdin) Compartilhar este post Link para o post Compartilhar em outros sites
Gaaah 0 Denunciar post Postado Outubro 15, 2009 O programa esta compilando e rodando, porem a casa das decimais (0.5; 0.4; 0.9...etc) nao estao compilando, alem do mais eu preciso ainda colocar em reais e centavos. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 15, 2009 Depois te ter visto um programa passado pelo link da _Isis_ e (creio eu) ter feito uma busca nesse fórum que tem vários tópicos sobre isso. Como está seu codigo atual? []s Compartilhar este post Link para o post Compartilhar em outros sites
Gaaah 0 Denunciar post Postado Outubro 19, 2009 O programa que eu fiz esta exatamente do jeito em que eu enviei acima, eu soh posso fazer o programa usando if e else . . . Soh falta colocar o programa para responder em reais, mas nao estou conseguindo...alem do mais a casa do decimais (0,9...) nao esta rodando.me ajudem por favor. Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Outubro 20, 2009 Olha teus ifs, tu tá comparando com ex. 0,00 ao invés de 0.00. E tá subtraindo também errado. Compartilhar este post Link para o post Compartilhar em outros sites