Java - Ayuda con programa para convertir numeros del 1 al 99 en letras

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con programa para convertir numeros del 1 al 99 en letras

Publicado por Jorge (10 intervenciones) el 03/04/2018 07:31:14
Bueno, el error java.lang.ArrayIndexOutOfBoundsException [ AQUI ME APARECE EL NUMERO QUE LE ARROJO AL PROGRAMA]
e intentado invertir algunas de las partes del codigo pero me aparecen errores y asi se compila, pero aun asi me sale error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Scanner;
public class NUMALET
{
    public static void main(String[]args)
    {
        Scanner leer=new Scanner(System.in);
        int num, dec, uni;
        String[] unidades = { "cero" + "uno" + "dos" + "tres" + "cuatro" + "cinco" + "seis" + "siete" + "ocho" + "nueve" };
        String[] decenas = { "diez" + "veinte" + "treinta" + "cuarenta" + "cincuenta" + "sesenta" + "setenta" + "ochenta" + "noventa" };
        System.out.println("Ingresa un numero del 1 al 99");
        num=leer.nextInt();
        dec=num/10;
        uni=num%10;
        System.out.println("El numero" + num + "es" + decenas[dec] + "y" + unidades[uni]);
 
 
        if(num>=11 && num<=15){
            switch(num){
                case 11: System.out.println("once"); break;
                case 12: System.out.println("doce"); break;
                case 13: System.out.println("trece"); break;
                case 14: System.out.println("catorce");break;
            } if(uni==0){
                switch(num){
                case 10: System.out.println("diez"); break;
                case 20: System.out.println("veinte"); break;
                case 30: System.out.println("treinta"); break;
                case 40: System.out.println("cuarenta"); break;
                case 50: System.out.println("cincuenta"); break;
                case 60: System.out.println("sesenta"); break;
                case 70: System.out.println("setenta"); break;
                case 80: System.out.println("ochenta"); break;
                case 90: System.out.println("noventa"); break;
            }
        }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Oliver
Val: 189
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con programa para convertir numeros del 1 al 99 en letras

Publicado por Oliver (67 intervenciones) el 03/04/2018 19:41:37
Hola amigo , consegui este que los caculaba para cualquier cifra pero lo edite para que solo fuese hasta 99, si le ingresas 100 te devuelve "null", puedes agregarle un if para el rango o si bien el la primera impresion que el numero sea del 1 al 99 o bien puedes hacr ambas cosas , alli te dejo el .rar lo descomprimes y listo... espero que te ayude !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con programa para convertir numeros del 1 al 99 en letras

Publicado por Nico (14 intervenciones) el 03/04/2018 19:49:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.util.Scanner;
 
public class NUMALET {
	public static void main(String[] args) {
		Scanner leer = new Scanner(System.in);
		int num, dec, uni;
		String[] unidades = {"cero" , "uno" ,"dos" , "tres" , "cuatro" , "cinco" , "seis" , "siete" , "ocho" , "nueve" };
		String[] decenas = { "diez" , "veinte" , "treinta" , "cuarenta" , "cincuenta" , "sesenta" , "setenta"
				, "ochenta" , "noventa" };
		System.out.println("Ingresa un numero del 1 al 99");
		num = leer.nextInt();
		dec = num / 10;
		uni = num % 10;
		System.out.println((num/10)+"and"+num%10);
		System.out.println("El numero " + num + " es " + decenas[dec-1] + " y " + unidades[uni]);
 
		if (num >= 11 && num <= 15) {
			switch (num) {
			case 11:
				System.out.println("once");
				break;
			case 12:
				System.out.println("doce");
				break;
			case 13:
				System.out.println("trece");
				break;
			case 14:
				System.out.println("catorce");
				break;
			}
			if (uni == 0) {
				switch (num) {
				case 10:
					System.out.println("diez");
					break;
				case 20:
					System.out.println("veinte");
					break;
				case 30:
					System.out.println("treinta");
					break;
				case 40:
					System.out.println("cuarenta");
					break;
				case 50:
					System.out.println("cincuenta");
					break;
				case 60:
					System.out.println("sesenta");
					break;
				case 70:
					System.out.println("setenta");
					break;
				case 80:
					System.out.println("ochenta");
					break;
				case 90:
					System.out.println("noventa");
					break;
				}
			}
 
		}
	}
}
He cambiado la forma de añadir los valores en vez de + he usado , || Así va pero ten cuidado con los arrays que empiezan a contar desde 0, decenas[0] es igual a 10.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oliver
Val: 189
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con programa para convertir numeros del 1 al 99 en letras

Publicado por Oliver (67 intervenciones) el 03/04/2018 19:57:06
El algoritmo que el propone esta mal a nivel de gramática , pues los numeros no se dicen "Veinte y nueve" "diez y siete", no puedes usar el numero 20 para adjuntarlo a su sucesion ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar