【发布时间】:2013-12-28 17:34:22
【问题描述】:
大家!
我有一个任务是创建一个小程序来为彩票生成不同的投注。我有好几个小时想知道应该在每个赌注中创建具有不同数字的数组的代码。问题是,尽管我试图减少重复,但我的代码会不断在矩阵的每一行中生成带有重复数字的赌注。 你认为我应该更深入地观察什么?
public static void main(String[] args) {
//Ask the user how many lines of 15 numbers will be created
System.out.print("How many lines should the matrix have? ");
Scanner input = new Scanner(System.in);
int numberOfLines = input.nextInt();
// Create the two-dimension array.
int[][] numbers = new int[15][numberOfLines];
for (int i = 0; i < numberOfLines; i++) {
for (int j = 0; j < 15; j++) {
boolean exist = false;
do {
numbers[j][i] = 1 + (int)(Math.random()*25);
for (int k = 0; k < j; k++) {
if (numbers[j][i] == numbers[k][i])
exist = true;
else {
exist = false;
}
}
} while (exist);
}
}
//Sort the array
int temp = 0;
for (int i = 0; i < numberOfLines; i++){
for (int j = 0; j < 15; j++) {
for (int k = (j + 1); k < 15; k++)
if (numbers[k][i] > numbers[j][i]) {
temp = numbers[j][i];
numbers[j][i] = numbers[k][i];
numbers[k][i] = temp;
}
}
}
//Print the array
System.out.println();
for(int i = 0; i < numberOfLines; i++) {
System.out.printf("Line %d: ", (i+1));
for (int j = 0; j < 15; j++){
System.out.printf("%4d",numbers[j][i]);
}
System.out.println();
System.out.println();
}
//System.out.println(numbers[0][1]);
//System.out.println(numbers[1][0]);
}
}
【问题讨论】: