Java 初学者问题:虽然3x3数组里填入随机数的程式有问题,但可以执行,求改写.程式介绍:(字多和密密的,对不起.)我想产生100个随机数,数值范围必须1-9,顺序排列好1行,而且只显示最前3个的随机数

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 04:53:47
Java 初学者问题:虽然3x3数组里填入随机数的程式有问题,但可以执行,求改写.程式介绍:(字多和密密的,对不起.)我想产生100个随机数,数值范围必须1-9,顺序排列好1行,而且只显示最前3个的随机数
xX{oXߣ JďL #Xih[Ɛ!q(@)Q[ C˔!:η\۵άV+ͽ;9P8tg;zcpV\iƛWOBžN.7^\#Ul՞W;Kӌ=F&TҪ]kfsa,O41dyͪ8ٓ7K"DzVe`?2D%/7jܟEN+yZ\شU%Ɠu:#2; -;;ᠵ$Q/;14VkڢaY~nBԒU]ozŵ)cȽL7' 3kβ=v~KPi ԸUX+ |KnIi}\Y݌ץ:Yz`זVKγ {"\hr.]0*yYv9W^m7_{T<#On3~+X#ە#&Qv˾hO0Q12;|D&W14?gWf MPǷnZ:fZU{2:%o CzahP):x,|b)RAXթ/xzyLqޮPsg;EkmѾiZ D|SSj,Ldan N< M7{Qu4;CSs23ZFoPRx yT*ܫ:--{sY؟HxN+ (%)l 'd$Fr_ߤY pe%mH?(&UQRU.#l* R892Leyc%GdUl,#,ɔ%cӬ i)f$ `9+3hXYnQ2Q8RAdp*˥ QҪ"8UP(Lbc)ċ1gs&JrFi(rOK2D$K;IJmΔrdx$r ,)8ʲXqFR8)fH"KՔy ^ @ +(݅biLN', fEIȲlZxgbC/=U趶chͱq,–Wp40_v`lL[ko`!YuB/.ڡR2kdZ:HήT<`LD;'CVQ*^i[RD}2p .,7/>{ne|zcΐgD/kqn$r'K.8~q'칇 CfR^R0Ъ):1|D76S(jgYo|'zD{kl옌t{K; ( 'ӺyNAα\Fٌh}ˆ9p(SYTT9(i7MyC /+H ~TJֶ@<ܤ'H19>mwyJا/!4}X9"G :nF4&XH<]Gl - z ؼmv6v=>q9dW'z֎rBT6F]?p.hJ,UjYqq v9 ;fC;#*vAxb1P-tvlDF^:~3V#ȧ爐^_z&Fzgo{E ntZ!(Lb.wOfږ$wRzT1Tt$蘧>qi% D֯iB&

Java 初学者问题:虽然3x3数组里填入随机数的程式有问题,但可以执行,求改写.程式介绍:(字多和密密的,对不起.)我想产生100个随机数,数值范围必须1-9,顺序排列好1行,而且只显示最前3个的随机数
Java 初学者问题:虽然3x3数组里填入随机数的程式有问题,但可以执行,求改写.
程式介绍:(字多和密密的,对不起.)
我想产生100个随机数,数值范围必须1-9,顺序排列好1行,而且只显示最前3个的随机数给使用者.
然後,系统会询问使用者顺序为第1个的随机数,在3x3的数组里摆放的位置是怎样?
放入第1个随机数後,询问第2个随机数放进哪个位置,直至3x3数组都塞满满的.
要注意的是,3x3数组1个位置只能放置1个随机数.
而且决定1个随机数位置後,系统自动显示最新的3x3数组.
另外,当3x3数组塞满後,系统会提示使用者程式结束了,问Y/N问题 (卡在这里做不到!),
答Y,重新执行整个程式,重新一次游戏;
答N,系统会提示使用者Good Bye!,然後自动结束程式运行.
我写了5小时以上的程式码在下面,花费时间比同龄同学要好点,他们花了两个星期也搞不好
想到了,把最下面的statement放到while (point <99) 的下面,问题解决一大半了





Java 初学者问题:虽然3x3数组里填入随机数的程式有问题,但可以执行,求改写.程式介绍:(字多和密密的,对不起.)我想产生100个随机数,数值范围必须1-9,顺序排列好1行,而且只显示最前3个的随机数

你的代码逻辑基本是对的,但是结构很混乱,你应该把一个大问题拆分为很多小问题,分别解决,就会很清晰了,我按你的思路改了程序,但是你那个point我没弄明白,如果99次之后怎么办不是很明确,所以我干脆无视了

public class RandomInt {
private static int[] randomNumArray = null;
private static int[][] box = null;

// record how many numbers has been put into the box
private static int count;

private static void initRandomArray() {
randomNumArray = new int[100];
for (int i = 0; i < 100; i++) {
randomNumArray[i] = (int) (Math.random() * 9 + 1);
}
}

private static void initBox(Scanner scan) {
box = new int[3][3];
while (count < 9) {
System.out.println("You are choosing a location for the random number: " + randomNumArray[count]);
int row;
do {
System.out.println("Please input a row number: (from 0 to 2)");
row = scan.nextInt();
} while (!checkRowAvailable(row));
int column;
do {
System.out.println("Please input a column number: (from 0 to 2)");
column = scan.nextInt();
} while (!checkColumnAvailable(column));
if (checkPutAvailable(row, column)) {
box[row][column] = randomNumArray[count];
System.out.println("You have put a random number at the location of row: " + row + ", column: " + column);
printBox();
count++;
}
}
}

private static boolean checkRowAvailable(int row) {
if (row < 0 || row > 2) {
System.out.println("It should be a legal row number. (from 0 to 2)");
return false;
}
return true;
}

private static boolean checkColumnAvailable(int column) {
if (column < 0 || column > 2) {
System.out.println("It should be a legal column number. (from 0 to 2)");
return false;
}
return true;
}

private static boolean checkPutAvailable(int row, int column) {
if (box[row][column] != 0) {
System.out.println("The location you chose has been occupied already, please ipnut again.");
return false;
}
return true;
}

private static void printBox() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(box[i][j]);
if (j < 2) {
System.out.print(" | ");
}
}
System.out.println();
}
}

private static void playGame(Scanner scan) {
count = 0;
initRandomArray();
initBox(scan);
}

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
playGame(scan);
while (true) {
System.out.println("\nDo you want to continue? (y/n)");
String s = scan.next();
if ("y".equalsIgnoreCase(s)) {
System.out.println();
playGame(scan);
} else if ("n".equalsIgnoreCase(s)) {
System.out.println("Good Bye!");
break;
}
}
scan.close();
}
}