题目:一辆大巴有9排4列的座位,现模拟客车售票过程(1代表“有票”,0代表“无票”)。
这个挺有意思的:讲一下思路吧,由于这个问题没有给出具体的空位数据,所以只能使用随机数来进行填充二维数组。
当选到无票的时候,数组要进行更新。 多的懒得讲,自己代码注释吧
package xaingmu;
import java.util.Random;
import java.util.Scanner;
public class asdf {
public static void main(String[] args) {
// TODO Auto-generated method stub
//4.一辆大巴有9排4列的座位,现模拟客车售票过程(1代表“有票”,0代表“无票”)。
int arr[][]=new int [9][4]; //定义九行四列二维数组
// int d[]=new int [2];
// String d="*";
Random r=new Random(); //定义随机数r
for(int i=0;i<arr.length;i++) { //遍历行
for(int a=0;a<arr[0].length;a++)//遍历列
arr[i][a]=r.nextInt(2); //给行列添加随机数(0-1之间) 也就给二维数组里面添加了元素
//System.out.print(arr[i][a]);
//System.out.print(r.nextInt(8));
}
System.out.println("——————————售票系统————————————"); //打印
for(int i=0;i<arr.length;i++) { // 遍历二维数组
for(int a=0;a<arr[0].length;a++) {
System.out.print("|"+arr[i][a]+"|"+"\t");
}
System.out.println();
System.out.println("————————————————————————————");
}
Scanner in =new Scanner(System.in); //定义输入
while(true) { //定义true(为真时无限循环)循环
System.out.println("请输入座位 行 1-9 列 0-4"); //打印
int s=in.nextInt();//输入行
int e=in.nextInt();//输入列
if(s<=9&&e<=4&&s>0&&e>0) { //判断输入的是否在规定范围内
System.out.println(arr[s-1][e-1]); //输入的全减一,因为数组默认是从0下标开始
//for(int i=0;i<d.length;i++)
//d[i]=in.nextInt();
if(arr[s-1][e-1]==1) { //判断有无票
System.out.println("无票");
}
else {
System.out.println("有票");
try { //有票则暂停程序三秒
Thread.sleep(3000);
}catch (InterruptedException e1) {
e1.printStackTrace();
}
arr[s-1][e-1]=1;//给空位加一表示有人了 更新数组
System.out.println("——————————售票系统————————————");
for(int i=0;i<arr.length;i++) { //重新遍历数组
for(int a=0;a<arr[0].length;a++) {
System.out.print("|"+arr[i][a]+"|"+"\t");
}
System.out.println();
System.out.println("————————————————————————————");
//break;
}
//d[0]= 0;d[1]=0;
//d[i]=in.nextInt();
//System.out.println(arr[d[0]][d[1]]);
//}
}
}
else { //不在规定范围内则返回正确输入
System.out.println("请正确输入");
}
//System.out.println(s+""+e);
}
}
}
运行结果如下
本人java刚学到二维数组,代码写的不好,大佬勿喷。有更好的思路的也可以在下方留言,我们一起讨论,一起学习。
阿~苏:生命不息,学习不止