Preciso fazer com que o programa de impressão de cheque imprima por extenso os valores, eu fiz os dois códigos separado mas não tenho noção de como uni-los
int main(){char nome[20];int valor;int dia, ano;char mes[15];
printf("\nImpressao de cheques\n");
printf("\nEscreva o dia (Numero): ");
scanf("%d",&dia);
printf("\nEscreva o mes (Nome): ");
scanf("%s", mes);
printf("\nEscreva o ano (Numero): ");
scanf("%d",&ano);
printf("\nEscreva o beneficiario (Pessoa Fisica ou Juridica): ");
scanf("%s", nome);
printf("\nDeclare o valor (R$): ");
scanf("%d",&valor);
printf("\n=====================================================================================\n");
printf("\n \t\t\t\tBANCO CENTRAL DO BRASIL\n ");
printf("\n Belo Horizonte, Minas Gerais, Brasil\t\t\t\t %d/%s/%d\n", dia, mes, ano);
printf("\n Pagar por este cheque a quantia de: %d (", valor);
printf(" reais.)\n");
printf("\n \n\t\tPagar este cheque a: %s", nome);
printf("\n\n\n\t\t\t\t\t\t\t ____________________________\n");
printf("\t\t\t\t\t\t\t\t\tAssinatura\n");
printf("\n=====================================================================================\n");return0;}
#include<stdio.h>#include<string.h>int cont=0,b;//b tambem define 01unidade 02dezena 03centena 04milhar 05milhao nessa ordem crescente char valor[20],imprimir[200];void umd(){switch(valor[b]){case'1':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," um ");break;//verifica caso dgito seja umcase'2':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," dois ");break;case'3':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," tres ");break;case'4':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," quatro ");break;case'5':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," cinco ");break;case'6':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," seis ");break;case'7':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," sete ");break;case'8':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," oito ");break;case'9':if(cont>=2)strcat(imprimir,"e");strcat(imprimir," nove ");break;}}void doisd(){if(valor[b]=='1'){switch(valor[b-1]){case'0':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dez ");break;case'1':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," onze ");break;//verifica caso dgito seja umcase'2':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," doze ");break;case'3':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," treze ");break;case'4':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quatorze ");break;case'5':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quinze ");break;case'6':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezesseis ");break;case'7':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezessete ");break;case'8':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezoito ");break;case'9':b--;if(cont>=3)strcat(imprimir,"e");strcat(imprimir," dezenove ");break;}}else{switch(valor[b]){//se for zero não faz nadacase'2':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," vinte ");break;//verifica caso dgito seja umcase'3':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," trinta ");break;case'4':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," quarenta ");break;case'5':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," cinquenta ");break;case'6':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," sessenta ");break;case'7':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," setenta ");break;case'8':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," oitenta ");break;case'9':if(cont>=3)strcat(imprimir,"e");strcat(imprimir," noventa ");break;}}}void tresd(){switch(valor[b]){//se for zero não faz nadacase'1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem ");else strcat(imprimir," cento ");break;//verifica caso dgito seja umcase'2':strcat(imprimir," duzentos ");break;case'3':strcat(imprimir," trezentos ");break;case'4':strcat(imprimir," quatrocentos ");break;case'5':strcat(imprimir," quinhentos ");break;case'6':strcat(imprimir," seiscentos ");break;case'7':strcat(imprimir," setecentos ");break;case'8':strcat(imprimir," oitocentos ");break;case'9':strcat(imprimir," novecentos ");break;}}void quatrod(){switch(valor[b]){//se for zero não faz nadacase'1':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," um mil ");break;//verifica caso dgito seja umcase'2':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," dois mil");break;case'3':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," tres mil ");break;case'4':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," quatro mil ");break;case'5':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," cinco mil ");break;case'6':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," seis mil ");break;case'7':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," sete mil ");break;case'8':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," oito mil ");break;case'9':if(cont>=5)strcat(imprimir,"e");strcat(imprimir," nove mil ");break;}}void cincod(){if(valor[b-1]=='0'&&valor[b]=='1'){switch(valor[b]){case'1':strcat(imprimir," dez mil ");break;//verifica caso dgito seja um}}elseif(valor[b]=='1'){switch(valor[b-1]){//se for zero não faz nadacase'1':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," onze mil ");break;//verifica caso dgito seja umcase'2':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," doze mil ");break;case'3':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," treze mil ");break;case'4':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," quatorze mil ");break;case'5':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," quinze mil ");break;case'6':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezesseis mil ");break;case'7':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezessete mil ");break;case'8':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezoito mil ");break;case'9':b--;if(cont>=6)strcat(imprimir,"e");strcat(imprimir," dezenove mil ");break;}}else{switch(valor[b]){//se for zero não faz nadacase'2':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," vinte ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;//verifica caso dgito seja umcase'3':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," trinta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'4':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," quarenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'5':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," cinquenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'6':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," sessenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'7':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," setenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'8':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," oitenta ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;case'9':if(cont>=7)strcat(imprimir,"e");strcat(imprimir," noventa ");if((valor[b-1])=='0')strcat(imprimir,"mil ");break;}}}void seisd(){switch(valor[b]){//se for zero não faz nadacase'1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem mil");else strcat(imprimir," cento ");break;//verifica caso dgito seja umcase'2':strcat(imprimir," duzentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'3':strcat(imprimir," trezentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'4':strcat(imprimir," quatrocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'5':strcat(imprimir," quinhentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'6':strcat(imprimir," seiscentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'7':strcat(imprimir," setecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'8':strcat(imprimir," oitocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;case'9':strcat(imprimir," novecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"mil ");break;}}void seted(){if(cont>=7)switch(valor[b]){//se for zero não faz nadacase'1':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," um milhao ");break;//verifica caso dgito seja umcase'2':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," dois milhoes ");break;case'3':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," tres milhoes ");break;case'4':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," quatro milhoes ");break;case'5':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," cinco milhoes ");break;case'6':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," seis milhoes ");break;case'7':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," sete milhoes ");break;case'8':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," oito milhoes ");break;case'9':if(cont>=8)strcat(imprimir,"e");strcat(imprimir," nove milhoes ");break;}}void oitod(){if(valor[b-1]=='0'&&valor[b]=='1'){switch(valor[b]){case'1':strcat(imprimir," dez milhoes ");break;//verifica caso dgito seja um}}elseif(valor[b]=='1'){switch(valor[b-1]){//se for zero não faz nadacase'1':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," onze milhoes ");break;//verifica caso dgito seja umcase'2':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," doze milhoes ");break;case'3':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," treze milhoes ");break;case'4':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," quatorze milhoes ");break;case'5':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," quinze milhoes ");break;case'6':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezesseis milhoes ");break;case'7':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezessete milhoes ");break;case'8':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezoito milhoes ");break;case'9':b--;if(cont>=9)strcat(imprimir,"e");strcat(imprimir," dezenove milhoes ");break;}}else{switch(valor[b]){//se for zero não faz nadacase'2':if(cont>8)strcat(imprimir,"e");strcat(imprimir," vinte ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;//verifica caso dgito seja umcase'3':if(cont>8)strcat(imprimir,"e");strcat(imprimir," trinta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'4':if(cont>8)strcat(imprimir,"e");strcat(imprimir," quarenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'5':if(cont>8)strcat(imprimir,"e");strcat(imprimir," cinquenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'6':if(cont>8)strcat(imprimir,"e");strcat(imprimir," sessenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'7':if(cont>8)strcat(imprimir,"e");strcat(imprimir," setenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'8':if(cont>8)strcat(imprimir,"e");strcat(imprimir," oitenta ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;case'9':if(cont>8)strcat(imprimir,"e");strcat(imprimir," noventa ");if((valor[b-1])=='0')strcat(imprimir,"milhoes ");break;}}}void noved(){switch(valor[b]){//se for zero não faz nadacase'1':if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir," cem milhoes");else strcat(imprimir," cento ");break;//verifica caso dgito seja umcase'2':strcat(imprimir," duzentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'3':strcat(imprimir," trezentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'4':strcat(imprimir," quatrocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'5':strcat(imprimir," quinhentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'6':strcat(imprimir," seiscentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'7':strcat(imprimir," setecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'8':strcat(imprimir," oitocentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;case'9':strcat(imprimir," novecentos ");if(valor[b-1]=='0'&&valor[b-2]=='0')strcat(imprimir,"milhoes ");break;}}void inverter(char dados[20]){//funcao inverter stringchar auxc;int ac,bc,contc;
contc=strlen(dados);
bc=contc;for(ac=0;ac<contc/2;ac++){
bc--;
auxc=valor[ac];
valor[ac]=valor[bc];
valor[bc]=auxc;}}void tamanhochar(){
printf("Digite valor:");
scanf("%s",&valor);
cont=strlen(valor);
inverter(valor);if(valor[0]=='0'&&cont<=1){
strcat(imprimir,"Zero");}}int main(){
tamanhochar();int a;for(b=cont;b>=0;b--){switch(b){case0:umd();break;//verifica qual casa decimal esta a correr //;case1:doisd();break;case2:tresd();break;case3:quatrod();break;case4:cincod();break;case5:seisd();break;case6:seted();break;case7:oitod();break;case8:noved();break;}}
printf("\n\n\%s\n\n", imprimir);
getchar();}
Pergunta
felipefilizola
Preciso fazer com que o programa de impressão de cheque imprima por extenso os valores, eu fiz os dois códigos separado mas não tenho noção de como uni-los
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.