Java - Escribir un número de múltiplos

 
Vista:

Escribir un número de múltiplos

Publicado por FRACGUY (14 intervenciones) el 25/10/2018 20:08:01
Da error al introducir el segundo múltiplo

Pueden encontrar el error por favor?

Les dejo el propósito y el código

"Introducir un número y que el sistema pida b múltiplos de ese número al usuario"

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
package parcial;
 
import java.util.Scanner;
 
public class Class1 {
 
	public static void main (String [] Args) {
		int i=0;
		int c;
		double r=0;
		double b;
		Scanner teclado = new Scanner (System.in);
		System.out.println("Introduce un número: ");
		int a = teclado.nextInt();
		b =  Math.random();
		b= (int) (b*10)+1;
		int array [] = new int [(int)b];
		System.out.println("Necesitas introducir "+b+" multiplos de "+a+".");
		do {
			System.out.println("Por favor introduzca un múltiplo de "+a);
			c = teclado.nextInt();
			r = c%a;
			if (r==0) {
			for (int j=1; j<=i; i++) {
				if (array [i]==c) {
					System.out.println("No puedes repetir números");
					i= (int) b+1;
			}
			}
			System.out.println("Correcto. "+c+" es un múltiplo de "+a);
			i++;
 
		}
		}while (i< (int) b);
		if (r!=0){
			System.out.println("Incorrecto. "+c+" no es un multiplo de "+a);
		}
		System.out.println("FIN DEL JUEGO");
 
	}
 
}
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Escribir un número de múltiplos

Publicado por Billy Joel (876 intervenciones) el 25/10/2018 21:58:22
Lo vi y no me gustó, pero creo haber entendido el proposito del programa, así que lo hice de nuevo rescatando casi nada parte de tu código y así lo resuelvo
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
import java.util.Scanner;
 
public class Class1 {
 
    public static void main(String[] Args) {
        Scanner teclado = new Scanner(System.in);
        System.out.println("Introduce un número: ");
        int numero = teclado.nextInt();
        double size = Math.random();
        size = (size * 10) + 1;
        int array[] = new int[(int) size];
        System.out.println("Necesitas introducir " + array.length + " multiplos de " + numero + ".");
        for (int i = 0; i < array.length; i++) {
            System.out.println("Por favor introduzca un múltiplo de " + numero);
            int multiplo = teclado.nextInt();
            if (multiplo % numero == 0) {
                for (int j = 0; j < i; j++) {
                    if (array[j] == multiplo) {
                        System.out.println("No puedes repetir números");
                        i--;
                        break;
                    }
                }
                System.out.println("Correcto. " + multiplo + " es un múltiplo de " + numero);
                array[i] = multiplo;
            } else {
                i--;
                System.out.println("Incorrecto. " + multiplo + " no es un multiplo de " + numero);
            }
        }
        System.out.println("Los multiplos ingresados son: ");
        for (int i = 0; i < array.length; i++) {
            System.out.println(i + "\t->\t" + array[i]);
        }
        System.out.println("FIN DEL JUEGO");
    }
}
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Escribir un número de múltiplos

Publicado por Billy Joel (876 intervenciones) el 25/10/2018 22:30:35
Bueno vamos tampoco voy a ser tan cruel jajajaja
Volví a tomar tu código y a pesar de mi instinto de volverlo hacer lo he corregido y agregado unas cuantas correcciones

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
import java.util.Scanner;
 
public class Class1 {
 
    public static void main(String[] Args) {
        int i = 0;
        int c;
        double r = 0;
        double b;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Introduce un número: ");
        int a = teclado.nextInt();
        b = Math.random();
        b = (int) (b * 10) + 1;
        int array[] = new int[(int) b];
        System.out.println("Necesitas introducir " + b + " multiplos de " + a + ".");
        do {
            System.out.println("Por favor introduzca un múltiplo de " + a);
            c = teclado.nextInt();
            r = c % a;
            if (r == 0) {
                for (int j = 0; j < i; j++) {
                    if (array[j] == c) {
                        System.out.println("No puedes repetir números");
//                        i = (int) b + 1;
                        i--;
                        break;
                    }
                }
                System.out.println("Correcto. " + c + " es un múltiplo de " + a);
                array[i] = c;
                i++;
            } else {
                System.out.println("Incorrecto. " + c + " no es un multiplo de " + a);
            }
        } while (i < (int) b);
        //////////////////////////////////////////////////
        System.out.println("Multiplos ingresados:");
        for (int j = 0; j < array.length; j++) {
            System.out.println(j + "\t->\t" + array[j]);
        }
        //////////////////////////////////////////////////
        System.out.println("FIN DEL JUEGO");
    }
}
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