pregunta .. numeros a letras

panshop
11 de Diciembre del 2003
es posible .. k uno al escribir un numrero por ejemplo 1.550.000.. pueda imprimir .. el numero es "un millon quinientos cincuenta mil"

de ante mano gracias


Hack JAM
11 de Diciembre del 2003
Claro que se puede mi estimado "panshop" puedes hacerlo con iteraciónes anidadas é "If´s", aqui te mando un programita que hace lo contrario, a la mera y te sirve de algo.
Saludos. ATTE. Hack JAM

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <values.h>
int valor=0;
void dec(char val[10]){
if(strcmpi(val,"uno")==0)valor=valor+ 1;
if(strcmpi(val,"dos")==0)valor=valor+ 2;
if(strcmpi(val,"tres")==0)valor=valor+ 3;
if(strcmpi(val,"cuatro")==0)valor=valor+ 4;
if(strcmpi(val,"cinco")==0)valor=valor+ 5;
if(strcmpi(val,"seis")==0)valor=valor+ 6;
if(strcmpi(val,"siete")==0)valor=valor+ 7;
if(strcmpi(val,"ocho")==0)valor=valor+ 8;
if(strcmpi(val,"nueve")==0)valor=valor+ 9;
}

void hh(char val[20]){
if(strcmpi(val,"once")==0)valor=valor+ 11;
if(strcmpi(val,"doce")==0)valor=valor+ 12;
if(strcmpi(val,"trece")==0)valor=valor+ 13;
if(strcmpi(val,"catorce")==0)valor=valor+ 14;
if(strcmpi(val,"quince")==0)valor=valor+ 15;
if(strcmpi(val, "diesiseis")==0)valor=valor+ 16;
if(strcmpi(val, "diesisiete")==0)valor=valor+ 17;
if(strcmpi(val, "diesiocho")==0)valor=valor+ 18;
if(strcmpi(val, "diesinueve")==0)valor=valor+ 19;
if(strcmpi(val, "veintiuno")==0)valor=valor+ 21;
if(strcmpi(val, "veintidos")==0)valor=valor+ 22;
if(strcmpi(val, "veintitres")==0)valor=valor+ 23;
if(strcmpi(val, "veinticuatro")==0)valor=valor+ 24;
if(strcmpi(val, "veinticinco")==0)valor=valor+ 25;
if(strcmpi(val, "veintiseis")==0)valor=valor+ 26;
if(strcmpi(val, "veintisiete")==0)valor=valor+ 27;
if(strcmpi(val, "veintiocho")==0)valor=valor+ 28;
if(strcmpi(val, "veintinueve")==0)valor=valor+ 29;
}
void de(char val[20]){

if(strcmpi(val, "diez")==0)valor=valor+ 10;
if(strcmpi(val, "veinte")==0)valor=valor+ 20;
if(strcmpi(val, "treinta")==0)valor=valor+ 30;
if(strcmpi(val, "cuarenta")==0)valor=valor+ 40;
if(strcmpi(val, "cincuenta")==0)valor=valor+ 50;
if(strcmpi(val, "sesenta")==0)valor=valor+ 60;
if(strcmpi(val, "setenta")==0)valor=valor+ 70;
if(strcmpi(val, "ochenta")==0)valor=valor+ 80;
if(strcmpi(val, "noventa")==0)valor=valor+ 90;
}
void cen(char val[10]){
if(strcmpi(val, "cien")==0)valor=valor+ 100;
if(strcmpi(val, "ciento")==0)valor=valor+ 100;
if(strcmpi(val, "doscientos")==0)valor=valor+ 200;
if(strcmpi(val, "trescientos")==0)valor=valor+ 300;
if(strcmpi(val, "cuatrocientos")==0)valor=valor+ 400;
if(strcmpi(val, "quinientos")==0)valor=valor+ 500;
if(strcmpi(val, "seiscientos")==0)valor=valor+ 600;
if(strcmpi(val, "setecientos")==0)valor=valor+ 700;
if(strcmpi(val, "ochocientos")==0)valor=valor+ 800;
if(strcmpi(val, "novecientos")==0)valor=valor+ 900;
}

int main(void)
{

char val1[10],*val;
char a[3],e[1];
clrscr();
printf (" escribe el valor en letra para convertirlo en numero:n ");
scanf("%[^n]", &val1);


val = strtok(val1, " ");


dec(val);
hh(val);
de(val);
cen(val);

val = strtok(NULL, " ");

dec(val);
hh(val);
de(val);
cen(val);
val = strtok(NULL, " ");

dec(val);
hh(val);
de(val);
cen(val);
val = strtok(NULL, " ");


dec(val);
hh(val);
de(val);
cen(val);
printf("%d",valor);

getch();
return 0;
}