所以我正在处理随机生成数组的任务。这里是作业:随机生成阵列的麻烦
写下面的函数来测试一个二维列表是否有四个连续的相同值的数字,水平的,垂直的或对角的。 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