所以我正在處理隨機生成數組的任務。這裏是作業:隨機生成陣列的麻煩
寫下面的函數來測試一個二維列表是否有四個連續的相同值的數字,水平的,垂直的或對角的。 public static boolean isConsecutiveFour(int [] [] values)編寫一個測試程序,提示用戶輸入二維列表的行數和列數,然後使用隨機數生成器填充數組並將其打印出來。如果列表包含四個具有相同值的連續數字,則顯示爲True。否則,顯示False。
我完成了一切,它似乎工作,但我堅持隨機生成數組部分。應該發生的事情是,用戶應該輸入數組的行數和列數,然後生成該數組。然後,測試該陣列以確定是否存在四個連續的數字。當我來測試問題時,它實際上並不顯示數字。我很茫然,和真糊塗(誰能幫助我或者給我一個提示這將不勝感激,謝謝您
import java.util.Random;
import java.util.Scanner;
public class ConsecutiveFour {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random r = new Random();
System.out.print("Enter number of rows: ");
int rows = input.nextInt();
input.nextLine();
System.out.print("Enter number of columns: ");
int columns = input.nextInt();
input.nextLine();
int[][] matrix = new int[rows][columns];
// generate some random boolean values
boolean[] booleans = new boolean[10];
for (int i = 0; i < booleans.length; i++) {
booleans[i] = r.nextBoolean();
}
for (boolean b : booleans) {
System.out.print(b + ", ");
}
System.out.println("");
}
public static boolean isConsecutiveFour(int[][] values) {
boolean cons = false;
int
//tests horizontally
for (int r=0; r < rows; r++) {
for (int c=0; c < columns - 3; c++){
if (values[c][r] == values[c+1][r] &&
values[c][r] == values[c+2][r] &&
values[c][r] == values[c+3][r]) {
cons = true;
}
}
}
//tests vertically
for (int r=0; r < rows - 3; r++) {
for (int c=0; c < columns; c++){
if (values[c][r] == values[c][r+1] &&
values[c][r] == values[c][r+2] &&
values[c][r] == values[c][r+3]) {
cons = true;
}
}
}
//tests diagonally (going down and to the right)
for (int r=3; r < rows; r++) {
for (int c=0; c < columns - 3; c++) {
if (values[c][r] == values[c+1][r-1] &&
values[c][r] == values[c+2][r-2] &&
values[c][r] == values[c+3][r-3]) {
cons = true;
}
}
}
//tests diagonally (going down and to the left)
for (int r=0; r < rows - 3; r++) {
for (int c=0; c < columns - 3; c++) {
if (values[c][r] == values[c+1][r+1] &&
values[c][r] == values[c+2][r+2] &&
values[c][r] == values[c+3][r+3]) {
cons = true;
}
}
}
return cons;
}
}
不是你的選民,但你應該在哪裏產生你的隨機數字?你在哪裏填充你的矩陣陣列?你應該使用你的Random對象,'r',它有一個方法,'nextInt(int max)'。我會在嵌套的for循環中執行此操作,在創建數組後,換句話說就是在這之後:int [] [] matrix = new int [rows] [columns];'。 – 2014-11-23 22:19:48