• java基础:3.2 多维数组


    1.申明

    int [][] array1 ={  {1,2,3} , {0} , {2,2,2,2,2} , {5,6} };  锯齿数组

    int [][] array2 = new int [5][ ];    // new int[5][] 创建数组时,必须指定第一个下标标。语法new int[] []是错误的

    array2[0] = new int[3];

    array2[1] = new int[6];   ...

    2.二维数组的长度

    int [][] x =new int [3][4];

    x.length = 3 ; 

    x[0].length = x[1].length = x[2].length =4;

    例子:选择题测验得分。用随机函数生成N个同学的选择题答案,保存在二维数组里。再随机生成一个正确答案,计算每位同学的正确率。

    package basic_practice_003;
    
    public class N_array { //多选题测验评分例子
    	final static int countIssue = 9;
    	final static int countStudent = 6;
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		System.out.println("       题目               :1 2 3 4 5 6 7 8 9");
    		char [][]student = new char[countStudent][countIssue];	
    		char []rightAnswer = new char[countIssue];
    		getAnswer(rightAnswer);
    		getAnswer(student,rightAnswer);
    
    		
    			
    	}
    	
    	public static void getAnswer(char [][]m,char []rightAnswer){
    		for(int j=0;j<countStudent;j++) {
    			System.out.print("student " + j + ":");
    			for(int i=0;i<countIssue;i++) {
    				m[j][i]=getRandomAnswer();
    				System.out.print(m[j][i] + " ");
    				}
    			int right =0;
    			for(int i=0;i<countIssue;i++){
    				if(m[j][i]==rightAnswer[i]) right++;
    			}
    			System.out.printf("   right rate = %.3f",right*1.0/countIssue);
    			System.out.println();
    		}		
    	}
    	public static void getAnswer(char []m){
    		System.out.print("rightAns :");
    			for(int i=0;i<countIssue;i++) {
    				m[i]=getRandomAnswer();		
    				System.out.print(m[i] + " ");}
    			System.out.println();
    	}
    	
    	public static char getRandomAnswer(){
    		return(char)('A' + Math.random()*('D' - 'A' + 1));}
    	
    
    }
    

    结果:

    输入N点坐标点,找出距离最小的两点。

    public class FindNearestPoints {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println("1.enter the number of point:");
    		Scanner input = new Scanner(System.in);
    		int number_of_point = input.nextInt();
    		System.out.println("2.enter " +2*number_of_point +" point:");
    		double [][] point = new double[number_of_point][2];
    		System.out.println("enter "+ number_of_point*2+" points location:");
    		for(int i=0;i<number_of_point;i++) {
    				point[i][0] = input.nextDouble();
    				point[i][1] = input.nextDouble();
    		}
    	
    		double nearestD = (point[0][0]-point[1][0])*(point[0][0]-point[1][0])+(point[0][1]-point[1][1])*(point[0][1]-point[1][1]);
    		int index1=0,index2=0;
    		for(int i=0;i<number_of_point;i++) {
    			for(int j=i+1;j<number_of_point;j++) {
    				double Distance = (point[i][0]-point[j][0])*(point[i][0]-point[j][0])+(point[i][1]-point[j][1])*(point[i][1]-point[j][1]);
    				if(Distance < nearestD) {
    					nearestD=Distance;
    					index1=i;
    					index2=j;
    				}
    			}
    		}
    		System.out.printf("the NearestPoints is (%.2f,%.2f),(%.2f,%.2f)",point[index1][0],point[index1][1],point[index2][0],point[index2][1] );
    		System.out.println();
    		System.out.println("the NearestD = " + Math.sqrt(nearestD));		
    	}
    }

  • 相关阅读:
    Roman to Integer
    Remove Element
    Maximum Subarray
    Climbing Stairs
    Binary Tree Preorder Traversal
    C++引用和指针
    adb
    Traceview
    解析xml
    SDK manager 下载不同版本sdk
  • 原文地址:https://www.cnblogs.com/l20902/p/10610952.html
Copyright © 2020-2023  润新知