Java - Ayuda con mi codigo

 
Vista:

Ayuda con mi codigo

Publicado por Wallcroft (1 intervención) el 12/01/2017 04:22:26
Buenas el caso es este:


ejer

code:http://pastebin.com/tPN44966
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
package practica;
 
public class adivinar2 {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int numeroAdivinar;
		int numeroComparar;
		 short contador;
		 int cifrasAdivinar= 0;
		 int bandera=0;
		 int nDesAdivinar;
		 int nDesComparar;
		 int digitoAdivinar;
		 int digitoComparar;
 
		System.out.println("Introduzca el primer numero");
		numeroAdivinar=Leer.datoInt();
 
		for ( contador=1 ; contador<=10; contador++){
 
 
 
			System.out.println("Introduzca el segundo numero");
			numeroComparar=Leer.datoInt();
 
			if(numeroAdivinar==numeroComparar){
 
           	 contador=10;
           	 bandera=1;
 
            }else{
 
            	nDesAdivinar=numeroAdivinar;
            	nDesComparar=numeroComparar;
 
            	while(  nDesAdivinar!=0){
 
            		nDesAdivinar = nDesAdivinar/10;
            				digitoAdivinar= nDesAdivinar%10;
            		nDesComparar = nDesComparar/10;
            				digitoComparar=nDesComparar%10;
            		if(digitoAdivinar==digitoComparar){
            			cifrasAdivinar=cifrasAdivinar+1;
            		}
 
            	}cifrasAdivinar=cifrasAdivinar-1;
            	System.out.println("Has introducido un total de: "+cifrasAdivinar+" dígitos");
 
		}
 
		}
		if(bandera==1){
			System.out.println("Has acertado todas las cifras");
 
		}else{
			System.out.println("Se te acabaron las oportunidades");
		}
		}
 
 
 
 
 
 
	}

prblema:[spoiler]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Introduzca el primer numero123
Introduzca el segundo numero
153
Has introducido un total de: 2 dígitos
Introduzca el segundo numero
223
Has introducido un total de: 2 dígitos
Introduzca el segundo numero
555
Has introducido un total de: 2 dígitos
Introduzca el segundo numero
153
Has introducido un total de: 2 dígitos
Introduzca el segundo numero
123
Has acertado todas las cifras
[/spoiler]




Parece que cuando vuelve a partir de la segunda vez, ya se desloquece


[spoiler]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Introduzca el primer numero
123456789
Introduzca el segundo numero
123456779
Has introducido un total de: 8 dígitos
Introduzca el segundo numero
123456779
Has introducido un total de: 8 dígitos
Introduzca el segundo numero
123456669
Has introducido un total de: 8 dígitos
Introduzca el segundo numero
123466669
Has introducido un total de: 8 dígitos
Introduzca el segundo numero
[/spoiler]
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 Carlos Castro

Ayuda con mi codigo

Publicado por Carlos Castro (54 intervenciones) el 12/01/2017 23:34:07
El programa trabaja correcto si ingresas números donde no se debe repetir ningún dígito: 123456 - 345678
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
import java.util.Scanner;
 
public class Adivinar2 {
 
    public static void main(String[] args) {
      int numeroAdivinar;
		int numeroComparar;
		 short contador;
		 int cifrasAdivinar= 0;
		 int bandera=0;
		 int nDesAdivinar;
		 int nDesComparar;
		 int digitoAdivinar;
		 int digitoComparar;
                 Scanner Leer=new Scanner(System.in);
		System.out.println("Introduzca el primer numero");
		numeroAdivinar=Leer.nextInt();
 
		for ( contador=1 ; contador<=10; contador++){
                        System.out.println("Introduzca el segundo numero");
			numeroComparar=Leer.nextInt();
 
            	nDesAdivinar=numeroAdivinar;
            	nDesComparar=numeroComparar;
 
                 cifrasAdivinar= 0;
                while(nDesAdivinar>0){
                    digitoAdivinar= nDesAdivinar%10;
                    nDesComparar=numeroComparar;
                    while(nDesComparar>0){
                       digitoComparar=nDesComparar%10;
 
                        if(digitoAdivinar==digitoComparar){
            			cifrasAdivinar=cifrasAdivinar+1;
                      		}
                       nDesComparar = nDesComparar/10;
 
                    }
                     nDesAdivinar = nDesAdivinar/10;
 
                }
 
            	System.out.println("Has introducido un total de: "+(numeroComparar+"").length()+" dígitos");
 
                 if(cifrasAdivinar==(numeroAdivinar+"").length()){
			System.out.println("Has acertado todas las cifras");
                         bandera=1;
                         break;
		}
 
 
		}
 
          if(bandera==0){
			System.out.println("Se te acabaron las oportunidades");
 
		}
 
    }
}

Pruebalo....

Saludos
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