Jak na vstup uživatele v počtu boolean v poli? [duplicitní]

0

Otázka

problémy jde takhle "Škola má N studentů a N krabic, jedna krabice pro každého studenta. Na určité události, učitel hraje následující hru: ptá se prvního studenta jít a otevřít všechny bedny. On pak žádá druhý student jít a zavřít všechny sudé krabice. Třetí student je požádán, aby zkontrolovat každý třetí box. Pokud je otevřený, student uzavírá; pokud je zavřeno, student otevře. Čtvrtý student je žádal, aby kontrolovat každý čtvrtý rámeček. Pokud je otevřený, student uzavírá; pokud je zavřeno, student otevře. Zbývající studenti pokračovat v této hře. Obecně platí, že n-tý student kontroluje každý n-tý box. Poté, co všichni studenti vzali na ně přijde řada, některé boxy jsou otevřené a některé jsou zavřené.." takže v podstatě chci číslo skříňky v uživatel zadává

import java.util.*;
public class LockerPuzzle {

    public static void main(String[] args) {
       
        Scanner scn = new Scanner(System.in); 
        
        
        boolean[] lockers = new boolean[scn];
         
        // then the first student comme and opens all the lockers
        for (int i = 0; i< lockers.length; i++){
           lockers[i] = false;
        }
        // students checking
        for(int j = 1; j<= lockers.length; j++){
            
            for(int k =j; k< lockers.length; k =k+j){
                
                if(lockers[k] == false){
                    lockers[k]=true;
                }else{
                    lockers[k]= false;
                }

            }
        }

        // this prints all the open lockers.
        for(int S=1; S<lockers.length; S++)
        {
            if (lockers[S] == true) {
                System.out.println("Locker " + S + " Open");
            }
            else {
                System.out.println("Locker " + S + " close");
            }
    }
  }
}

a ukazuje to tuto chybu

/LockerPuzzle.java:9: error: incompatible types: Scanner cannot be converted to int
        boolean[] lockers = new boolean[(scn)];
arrays boolean java java-11
2021-11-19 21:17:42
1

Nejlepší odpověď

0

Budete muset použít Scanner získat vstup od uživatele. Pak stane se, že vstup jako velikost vašeho nového pole.

Scanner scn = new Scanner(System.in); 
int userInput = scn.nextInt();
boolean[] lockers = new boolean[userInput];
2021-11-19 21:23:24

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................