JaveSE基础之二维数组及练习题

阅读: 评论:0

JaveSE基础之二维数组及练习题

JaveSE基础之二维数组及练习题

JaveSE基础之二维数组

  • 一、查找
    • 线性查找
    • 二分查找
  • 二、二维数组
  • 二维数组练习题
    • 求最大的行和列
    • 判断一个数组是否有序
    • 打印不同的数
    • 判断一个数组中是否有四个连续相同的数
    • 游戏:豆机

一、查找

线性查找

用于数字个数量不大的时候

public class Demo12 {public static void main(String[] args) {int[] nums= {23,1,45,89,203,49};int n=4;boolean f=false;//false 没找到  true找到了for (int i = 0; i < nums.length; i++) {if(nums[i]==n) {System.out.println("找到了");f=true;break;}}if(!f) {System.out.println("没找到");}}}

二分查找

在有序的数列基础查找的

public class Demo13 {public static void main(String[] args) {int[] nums= {1,24,35,46,57,78,90,98};int n=98;int start=0;int end=nums.length-1;int mid;boolean f=false;//false没找到 true找到了do {mid=(start+end)/2;if(nums[mid]==n) {System.out.println("找到了");f=true;break;}else if(nums[mid]<n) {start=mid+1;}else {end=mid-1;}}while(start<=end);if(!f) {System.out.println("没找到");}}}

二、二维数组

定义数组,然后对其遍历:
方法一:

public class Demo01 {public static void main(String[] args) {int[][] nums=new int[3][];String[][] strs=new String[4][5];nums[0]=new int[] {1,2,3};nums[1]=new int[] {23,4,12};nums[2]=new int[] {1};boolean[][] ds= {{true,false,true},{true,false},{false}};//遍历  nums[][]System.out.println(nums.length);for (int i = 0; i < nums.length; i++) {int[] n=nums[i];for (int j = 0; j < n.length; j++) {System.out.print(n[j]+" ");}System.out.println();}}
}

方法二:

public class Demo01 {public static void main(String[] args) {int[][] nums=new int[3][];String[][] strs=new String[4][5];nums[0]=new int[] {1,2,3};nums[1]=new int[] {23,4,12};nums[2]=new int[] {1};boolean[][] ds= {{true,false,true},{true,false},{false}};//遍历  nums[][]for (int j = 0; j < nums[i].length; j++) {System.out.print(nums[i][j]+" ");}System.out.println();}	}
}

键盘输入赋值,进行遍历:

public class Demo01 {public static void main(String[] args) {double[][] dd=new double[2][3];Scanner input=new Scanner(System.in);for (int i = 0; i < dd.length; i++) {for (int j = 0; j < dd[i].length; j++) {dd[i][j]&#Double();System.out.print(dd[i][j]+"  " );}System.out.println();}
}

二维数组练习题

求最大的行和列

编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,找到一个具有最多1的行和列。下面是程序运行示例:
0010
0011
1101
1010
最多1的行是:2
最多1的列是:2

package se0606;import java.util.Scanner;public class Demo02 {public static void main(String[] args) {int[][] nums=new int[4][4];Scanner input=new Scanner(System.in);//循环输入,给二维数组赋值for (int i = 0; i < nums.length; i++) {for (int j = 0; j < nums[i].length; j++) {nums[i][j]&#Int();}}//求最多1 的行int max=0;int row=0;//最多1对应的row的下标for (int i = 0; i < nums.length; i++) {int count=0;//存储每一行1的个数for (int j = 0; j < nums[i].length; j++) {if(nums[i][j]==1) {count++;}}//求最值if(max<count) {max=count;row=i;}}//求最多1 的列int lie=nums[0].length;int max2=0;//最多1的个数int column=0;//1最多的列for (int i = 0; i < lie; i++) {//遍历每一列//遍历这一列的每一行int cCount=0;//每一列的1的个数for (int j = 0; j < nums.length; j++) {if(nums[j][i]==1) {cCount++;}}if(max2<cCount) {max2=cCount;column=i;}}System.out.println("最多1的行是:"+row);System.out.println("最多1的列是:"+column);}}

判断一个数组是否有序

package se0606;
//判断一个数组是否有序
public class Demo03 {public static void main(String[] args) {
//		int[] nums= {1,2,3,4,5,16,7,8,9};int[] nums= {9,8,7,6,6,4,3,2,1,0};int count1=0;//记录<=的次数int count2=0;//记录>=的次数for (int i = 0; i < nums.length-1; i++) {if(nums[i]<=nums[i+1]) {count1++;}if(nums[i]>=nums[i+1]) {count2++;}}if(count1==nums.length-1||count2==nums.length-1) {System.out.println("该数列有序");}else {System.out.println("该数列无序");}}}

打印不同的数

编写一个程序,读入10个数并且显示互不相同的数(即一个数出现多次,但仅显示一次)输入之后,数组包含的都是不同的数。

package se0606;import java.util.Scanner;public class Demo04 {public static void main(String[] args) {int[] nums=new int[10];//从键盘输入10个数int index=0;Scanner input=new Scanner(System.in);for (int i = 0; i < nums.length; i++) {int num&#Int();//判断下数组中是否已经存储了numboolean f=false;//false 没 true 已经有了for (int j = 0; j < index; j++) {if(nums[j]==num) {f=true;break;}}if(f)continue;nums[index]=num;//确保数组中没有num的时候,才赋值index++;}//1 3 3 4 3 2 0 2 1 5int[] nums2= new int[index];for (int i = 0; i < index; i++) {nums2[i]=nums[i];}for (int i : nums2) {System.out.print(i+"  ");}}}

判断一个数组中是否有四个连续相同的数

方法一:

package se0606;public class Demo05 {public static void main(String[] args) {int[] nums= {1,1,1,2,3,4,4,4,3,6,6,6};boolean flag=true;//flase 没有四个连续的数 true有for (int i = 0; i < nums.length-3; i++) {
//			boolean f=true;//true 想等 false不等flag=true;for (int j = i+1; j <=i+3; j++) {if(nums[i]!=nums[j]) {flag=false;break;}}if(flag) {System.out.println("有四个连续的数");flag=true;break;}}if(!flag) {System.out.println("没有");}}}

方法二:

package se0606;public class Demo06 {public static void main(String[] args) {int[] nums= {1,1,1,2,3,4,4,4,3,6,6,6,6};int count=1;boolean f=false;//true 有  false 没有for (int i = 1; i < nums.length; i++) {if(nums[i]==nums[i-1]) {count++;if(count==4) {f=true;break;}}else {count=1;}}if(f) {System.out.println("有四个连续的数");}else {System.out.println("没有");}}}

游戏:豆机

package se0606;import java.util.Scanner;public class Demo07 {public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.print("请输入小球的个数:");int balls&#Int();System.out.println("请输入槽子的个数:");int caozi&#Int();int[] caos=new int[caozi];for (int i = 0; i < balls; i++) {String path="";int count=0;for (int j = 0; j < caozi-1; j++) {//[0.0,1.0)*2 [0,2.0)int random=(int)(Math.random()*2);//产生0,1随机数if(random==0) {path+="L";}else {path+="R";count++;}}caos[count]++;System.out.println(path);}for (int i : caos) {System.out.print(i+" ");}System.out.println("---------------");//求槽子中最多的小球数int max=caos[0];//槽子中最多的小球数for (int i = 0; i < caos.length; i++) {if(max<caos[i]) {max=caos[i];}}//输出
//		for (int i = max; i >=0; i--) {
//			for (int j = 0; j < caozi; j++) {
//				if(i<=caos[j]-1) {
//					System.out.print("O");
//				}else {
//					System.out.print("X");
//				}
//			}
//			System.out.println();
//		}for (int i = max; i >=0; i--) {for (int j = 0; j < caozi; j++) {if(i<caos[j]) {//caos[j]System.out.print("O");}else {System.out.print("X");}}System.out.println();}}}

本文发布于:2024-02-01 18:23:42,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170678302438581.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:练习题   数组   基础   JaveSE
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23