Salve a tutti, senza chiedervi direttamente il codice ( l'esercizio risulterebbe abbastanza inutile )
volevo chiedervi qualche consiglio su dove e cosa sbaglio.
La consegna sarebbe la seguente:
Utilizzando solo ciclo for, o while, if, switch, enumerazioni bisogna indovinare un numero positivo formato da 5 cifre. Il programma dovrà inoltre ritornare il numero di cifre corrette e la loro somma.
Esempio: se il numero segreto fosse 45678 e io inserisco 46679 il programma ritornerebbe 3 e 17
il mio codice,per quel poco che ho notato, non funziona in quanto:codice:package gioconumeri; import java.util.Scanner; public class GiocoNumeri { public static void main(String[] args) { Scanner tastiera = new Scanner(System.in); int div = 10; int vite = 5; int somma = 0; int count = 0; int modConfr = 0; System.out.println("Inserisci un numero di 5 cifre: "); int confronto = tastiera.nextInt(); while(vite > 0 || (base - modConfr) == 0){ modConfr = confronto % div; int modBase = base % div; int differenza = modBase - modConfr; if(differenza == 0) { System.out.println(modBase); System.out.println(modConfr); System.out.println("La seguente cifra e' corretta: " + differenza); somma = somma + differenza; div *= 10; } else { System.out.println("Hai perso una vita, ritenta"); confronto = tastiera.nextInt(); vite--; } } } }
A) c'è sicuramente qualche problema logico
B) una volta sbagliata una cifra il programma non va più avanti (e questo e' per ovviamente dell'else che blocca), ma non sto riuscendo a trovare valide alternative. Esempio: se il numero segreto fosse 45678 e io inserisco 46679 alla prima cifra si bloccherebbe senza verificare il resto. (Magari sarebbe giusto togliere lo scanner, dico bene ? )
C) credo di aver messo troppe variabili :|

Rispondi quotando