Visualizzazione dei risultati da 1 a 2 su 2

Discussione: ciclo esercizio 1

  1. #1

    ciclo esercizio 1

    Dove ho sbagliato che non riesco a capire????

    codice:
    import java.util.*;
    import java.math.*;
    
    public class CicloEs19 {
    
       public static void main(String[] args) {
       
          /*Si hanno a disposizione tre premi identici da assegnare in un gruppo di dieci finalisti, ai quali
           * sono stati associati i numeri da 1 a 10. Scrivere un programma che scelga in modo casuale i numerici
           * dei tre finalisti che riceveranno un premio. si faccia attenzione a non sorteggiare lo stesso numero
           * più volte. per esempio, l'estrazione dei finalisti 3, 6, 2 sarebbe valida, ma quella di 3, 3, 11 no
           * perchè il finalista numero 3 compare due volte e inoltre 11 non è un numero valido per un finalista.
           * si può semplicemente utilizzare la seguente riga di codice per generare un numero casuale tra 1 a 10
           * 
           * int num = (int) (Math.random() * 10) + 1;
           * */
          
          /*È un po' "contorto". Si può fare in modo più semplice e lineare. Il primo (a) è banale, 
           * l'estrazione è diretta. Il secondo (b), fai un ciclo while finché il valore estratto è uguale ad a. 
           * Il terzo idem semplicemente che continui a ciclare se il valore estratto è uguale ad a O b.*/
          
          double num = 1 , a = 0, b = 0, c = 0;
          
          
          System.out.println("Si hanno a disposizione tre premi identici in un gruppo di 10 finalisti: ");
          System.out.println("Ogni finalista devono avere tre premi differenti.");
          
          
       /*   for(int i = 0; i <= 10; i++){
             num = (int) (Math.random() * 10) + 1;
             
                a = num;
             
             for(int y = 0; y < 10; y++){
                num = (int) (Math.random() * 10) + 1;
                
                b = num;
             }
             
             for(int z = 0; z < 10; z++){
                num = (int) (Math.random() * 10) + 1;
                c = num;
             }
             
          } */
          
          
          a =  (int) (Math.random() * 10) + 1;
          
          do{
             b = (int) (Math.random() * 10) + 1;
             c = (int) (Math.random() * 10) + 1;
             
          }while((!(a != b)) || (!(c != b))); // a deve essere maggiore di b
    
          System.out.println("A:" + a + " B:" + b + " C:" + c);
    
          
          }   
          
       }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Premessa: a differenza dell'altro forum, su questo non è considerato cross-posting l'apertura di discussioni identiche su forum diversi... ma qui ci sono delle regole: spetta a te fornire tutti i dettagli del caso. Non ti puoi limitare a scrivere "cosa ho sbagliato", incollare lì il codice, e delegare tutto l'onere di capire cosa voelvi fare, cosa hai fatto, che problemi hai e dove si travano a chi legge la discussione.
    Sei tu che devi descrivere il problema. Sei tu che devi descrivere come hai cercato di risolverlo. Sei tu che devi fornire le informazioni sugli errori che ottieni o sui risultati sbagliati che iltuo programma restituisce.

    C'è un Regolamento interno che va letto e rispettato. E noi moderatori, qui, lo facciamo rispettare.

    E' per questo che chiudo tutte e tre le tue discussioni.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.