2017-02-16 30 views
0
import java.util.Random; 
public class Accidents{ 
    static final int DAYS = 31; 
    static final int HOURS = 24; 

    private int[][] accidents = new int[DAYS][HOURS]; 

    public Accidents(){ 
     Random rand = new Random(); 
     accidents[DAYS][HOURS] = rand.nextInt(10); 
    } 
} 

Это, по-видимому, не работает. Я попытался использовать тестер. Я хочу знать, как написать конструктор, чтобы он генерировал случайные целые числа от 0 до 9? Спасибо.Как вы заполняете массив со случайными целыми числами в конструкторе? (2D-массив)

Вы можете игнорировать то, что ниже.

public int totalAccidents(){ 
    int total = 0; 
    for(int i=0; i<accidents.length; i++){ 
     for(int j=0; j<accidents[0].length; j++){ 
      total += accidents[i][j]; 
     } 
    } 
     return total;  
    } 


    public int mostAccidents(){ 
    int sum = 0; 
    int max = 0; 
    for (int i=0;i<24;i++){ 
     for(int j=0; j<accidents.length; j++){ 
     sum += accidents[j][i]; 
     } 
     if (sum> max) 
      max = sum; 
    } 
    return max; 
    } 


    public void printArray(){ 
    for(int j=0; j<accidents.length; j++){ 
     for(int k=0; k<accidents[0].length; k++){ 
      System.out.print(accidents[j][k]+" "); 
     } 
     System.out.println(); 
    } 
    } 

    } 

ответ

1

Ваш конструктор устанавливает только последнее значение в 2d массива. Вам нужно будет пропустить ваш массив, как в вашей функции «totalAccidents», чтобы установить каждое значение в массиве. Поэтому в вашем конструкторе должно быть что-то вроде этого:

for(int i=0; i<accidents.length; i++){ 
    for(int j=0; j<accidents[0].length; j++){ 
     accidents[i][j] = rand.nextInt(10); 
    } 
    }