java之二维数组

二维数组的使用

二维数组 arr[ 2 ] [ 3 ]的元素是一维数组,如果访问第2个数组的第2个元素是arr[2][2]

请添加图片描述

二位数组语法

语法:类型[ ] [ ]数组名 = new 类型[ 大小] [大小 ]

语法: 类型 数组名 [ ] [ ] ; 数组名 = new 类型[大小 ] [大小 ]

语法:类型 数组名 [ ] [ ] = { {1,2,3} , {4,5,6,7,8} , {2,3,1} }


/*

打印

00000
00100
01240
14656

*/


public class text {
	
	public  static  void main(String[] args) {
	 int [][]arr = {{0,0,0,0,0},{0,0,1,0,0},{0,1,2,4,0},{1,4,6,5,6}};
		
		
		for(int i = 0;i < arr.length; i++) { //arr.length指的是二维数组元素的个数
			for(int k = 0 ; k < arr[i].length ; k++) {//arr[i].length指的是二维数组元素的个数
				System.out.print(arr[i][k]+"\t");
			
		}
		System.out.println();
			}

	}
}

打印m数组  1
		 2  2
		 3  3  3

    

public class text {
	
	public  static  void main(String[] args) {
		
		int m[][] = {   {1},{2,2},{3,3,3}  };
		for(int i = 0; i<m.length; i++ ) {  //遍历二维数组中的3个数组
			for(int k = 0; k <m[i].length ; k++) {
				
				System.out.print(m[i][k]+"\t");//遍历每个数组的每个元素
			}
			
			System.out.println();
		}	
		
	}
}

二维数组打印乘法口诀表



public class text {
	
	public  static  void main(String[] args) {
		
		int m[][] =  new int [9][] ; //列数不确定,可以不写
		for(int i = 0; i<m.length; i++ ) {  //遍历二维数组中的3个数组
		     
			 m[i] = new int [ i+1]; //循环开启二维数组中的每个一维数组,而且 i+1 影响着下面 m[i].length的长度
		
			for(int k = 0; k <m[i].length ; k++) {
				
				m[i][k]= i + 1;
				System.out.print(m[i][k]+"*"+(k+1)+"="+m[i][k]*(k+1)+"\t");//遍历每个数组的每个元素
			}
			
			System.out.println();
		}	
		
	}
}

打印十行杨辉三角


public class text {
	
	public  static  void main(String[] args) {
		int m[][] = new int[10][];//定义一个十行的二维数组
		
		for(int i = 0; i < m.length;i++ ) {
			
			 m[i]= new int [i +1]; // 开辟m[0],m[1]........m[9]不同的空间
			for(int k =0; k < m[i].length; k++) { //遍历二元数组中每一个一元数组内包含的全部元素
				if( (k == 0) || (k == m[i].length -1 )) {
					m[i][k]=1;
				}
				else
				{
					m[i][k]= m[i-1][k-1]+m[i-1][k];
				}
					
			 }
	
		 }
		 
	for(int  i = 0; i < m.length;i++ ) {
			for( int k =0; k < m[i].length; k++) { 		
				System.out.print(m[i][k]+"\t");
			}
		System.out.println();
	}
			
		 
	}
}

一个数组{10,12,45,90}是升序,要求插入一个数后,还是升序


public class text {
	public  static  void main(String[] args) {
	

	
	int  arr[]  = {10,12,45,90};
	int  insertNum = 23;

	int  index = -1;// index就是要插入的位置
	
	
//**定位**
	//设一个变量index用于接收下标i,依次遍历 插入的数inserNum 和 原数组的元素arr[i] 进行比较,
	//	若 插入数insertNum小,则用index获取当前元素下标i;   否则将接收下标的index赋予最大下标arr[arr.length]

  
			for(int i= 0;i<arr.length;i++) {
					if( insertNum <= arr[i]) {
							index = i;
							break;
					}
			}
		
				if(index == -1) {
					index = arr.length;	
				}
		
		
	System.out.println("定位index的位置是 "+index);
		

//**扩容**


		//创建一个新的数组,并将原先的数组依次赋值给新数组
		int   arr_new[] = new int [arr.length+1]; 
				for (int i = 0,j=0; i < arr_new.length; i++) {
					if( i != index ) {
						arr_new[i] = arr[j];
						j++;
					}else {
						arr_new[i] = insertNum;
					}			 
				}	
				
			// 让arr指向arr_new,回收原来arr的空间
              arr  =  arr_new;			

			//遍历输出
			System.out.println("-----添加过后的排序-----");
			 for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+"\t");
			 }

	}
}

彩票实现

import java.util.Random;
import java.util.Scanner;

public class text {
	
	//创建一个函数,用于换行
	public  static  void  nt () {
		System.out.println("");
		System.out.println("");
		System.out.println("");
		
	}
	
	public  static  void main(String[] args) {

Scanner scanner = new Scanner(System.in);		
Random rand = new Random();
		
		
		
//用于随机每个红蓝球	
	int redArr[] = new int[6];
	int blueArr[] = new int[1];
	
//用于接收用户每个红蓝球	
	int insertRed[] = new int[6];
	int insertBlue[] = new int[1];
	


//随机红蓝号码

				for(int i = 0; i<redArr.length; i++) {	
					redArr[i] = rand.nextInt(33 - 1 + 1) + 1; 											
				}
							
					blueArr[0] = rand.nextInt(16 - 1 + 1) + 1; 											
				
				

 //匹配红蓝中奖号码
int index1 = 0; //用于定义红球中的次数
int index2 = 0;//用于定义蓝球中的次数
int num =1;
				 for(int i = 0; i<redArr.length; i++) {
					 
					System.out.println("请输入第"+num+"红色球号码[1-33]");
					insertRed[i] =  scanner.nextInt();
					num++;
						
						for(int j =0 ; j<redArr.length; j++) {

							if(insertRed[i] == redArr[j] ) {
								index1++;
								
							}								
					 }
				}
				
				
				System.out.println("请输入1个蓝色球号码[1-16]");
						insertBlue[0] =  scanner.nextInt();
					  
							 if(insertBlue[0] == blueArr[0] ) {
								index2++;
								
							}	
							
	nt ();
			
				
		if( index1== 6 && index2 == 1 ) {
			System.out.println("天哪,欧皇降临,获得一等奖1000万元");
		}		
				
		else if( index1== 6 ) {
			System.out.println("运气爆棚,获得二等奖500万元");
		}		
		
		else if( index1== 5 && index2 == 1 ) {
			System.out.println("不错呦,获得三等奖3000元");	
		}	
		
		else if( index1== 5 ||  (index1==4  && index2 == 1) ) {
			System.out.println("嘿嘿,获得四等奖200元");
		}	
		
		else if( index1== 4 ||  (index1==3  && index2 == 1) ) {
			System.out.println("哦吼,获得五等奖10元");
		}	
		
		else if( index2 == 1 ) {
			System.out.println("不赖不赖,获得六等奖5元");
		}	
		
		else   {
			System.out.println("谢谢惠顾,感谢你为民生做出贡献");
		}	
		
		
		  nt();
		
		System.out.println("是否查看本次福利彩票中奖号码(y/n)");
		char  x = scanner.next().charAt(0);
		if( x == 'y') {
		
//公布最终获奖号码。				
		System.out.println("****本次彩票中奖号码为****");			
		nt();
		System.out.println("红球分别是");
			
				for(int i = 0; i<redArr.length; i++) {
						System.out.print(redArr[i]+"\t");					
					}
				
		nt();
		System.out.println("蓝球分别是");
		
				
				
				for(int i = 0; i<blueArr.length; i++) {
					System.out.print(blueArr[i]+"\t");					
				}
				
nt();
	}	
  }
}

二维数组的注意事项

定义方式

一维: int arr       [ ] = new int [x ];
二维: int  arr [ ][ ] = new int [ x][ y];

二位数组是由多个一位数组组成的,它的各个一位数组的长度可以相同,也可以不相同
arr [ ][ ] = { {1,23},{43,65,76},{22,56…87.33,24} }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值