java从小白开始的练习(四,数组)

Posted 韶光不负

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从小白开始的练习(四,数组)相关的知识,希望对你有一定的参考价值。

请输入10位同学的java成绩,1、求平均成绩,最高成绩、最低成绩?2、对10的成绩按照从低到高的顺序排列

 1,取平均值,最大值最小值。


import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        int arr[]=new int[10];
        Scanner sc = new Scanner(System.in);
        //输入成绩
        int max=0,min=0,sum=0;
        for(int i=0;i<=9;i++){
            System.out.println("请输入第"+(i+1)+"java同学成绩:");
            int number=sc.nextInt();
            arr[i]=number;
            sum+=arr[i];
            //比较大写
            if(i==0){
                max=arr[i];
                min=arr[i];
            }else {
                if(max<arr[i]){
                    max=arr[i];
                }
                if(min>arr[i]){
                    min=arr[i];
                }
            }

        }
        System.out.println("平均成绩:"+(sum/arr.length));
        System.out.println("最大值为:"+max);
        System.out.println("最小值为:"+min);

    }
}

 2,排序


import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        int arr[]=new int[]{12,20,80,96,54,32,50,64,32,60};
//        Scanner sc = new Scanner(System.in);
//        //输入成绩
//        int max=0,min=0,sum=0;
//        for(int i=0;i<=9;i++) {
//            System.out.println("请输入第" + (i + 1) + "java同学成绩:");
//            int number = sc.nextInt();
//            arr[i] = number;
//        }
        int sort[] =bubble_sort(arr);
        for(int i=0;i<sort.length-1;i++){
            System.out.print(sort[i]+" ");
        }

    }
    public static int[] bubble_sort(int arr[]){
        //冒泡排序
        for(int i =0;i<arr.length-1;i++){
            //遍历次数
            for(int j=0;j<arr.length-1-i;j++){
                //获取下标比较,按升序排列
                if(arr[j]>arr[j+1]){
                    int num=0;//存储交换值
                    //交换
                    num=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=num;
                }
            }
        }
        return arr;
    }

}

选择排序

public static int[] selection_sort(int arr[]){
        //选择排序
        for(int i =0;i<arr.length-1;i++){
            //遍历次数
            int min=i;//假设第一个最小
            for(int j=i+1;j<arr.length-1;j++){
                //获取下标比较,按升序排列
                if(arr[j]<arr[min]){
                    min=j;
                    int num=0;//存储交换值
                    //交换
                    num=arr[i];
                    arr[i]=arr[min];
                    arr[min]=num;
                }
            }
        }
        return arr;
    }

插入:


import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        int arr[]=new int[]{12,20,80,96,54,32,50,64,32,60};

        int sort[] =insert_sort(arr);
        for(int i=0;i<sort.length-1;i++){
            System.out.print(sort[i]+" ");
        }

    }
    public static int[] insert_sort(int arr[]){
        //插入排序
        for(int i =1;i<arr.length-1;i++) {

            int tmp=arr[i];
            int j =i-1;//插入下标
            while (arr[j]>tmp && j>=0){
                arr[j+1]=arr[j];
                j--;
            }
            arr[j+1]=tmp;
        }
        return arr;
    }
}

给定一个数组,判断某个元素是否在该数组中


import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int arr[] = new int[]{12, 20, 80, 96, 54, 32, 50, 64, 32, 60};
        System.out.println("请输入元素:(数字)");
        int val=sc.nextInt();
        int tmp=judge(val,arr);
        if(tmp==1){
            System.out.println("存在");
        }else {
            System.out.println("不存在");
        }
        sc.close();//给你流
    }
    public static int judge(int val,int arr[]){
        int tmp=0;
        for(int i=0;i<arr.length;i++){
            if (val==arr[i]){
                tmp=1;
            }
        }
        return tmp;
    }
}

 

 给定一个数组,大小为10,输入十个同学的成绩,求这些成绩的总分数,某一天转入2个新同学,请再次求12个同学的平均成绩(尝试着使用扩容的形式做)


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

        int student[]=new int[]{13,25,6,575,82,42,4,5,1,10};
        int sum=0;
        student=add(student.length+2,student);
        student[student.length-1]=100;
        student[student.length-2]=100;
        for(int i =0;i<student.length;i++){
            sum+=student[i];
        }
        System.out.println("总分数为:"+sum);

    }
    public static int[] add(int newlen,int arr[]){
        int sort[] =new int[newlen];
        for(int i =0;i<arr.length;i++){
            sort[i]=arr[i];
        }
        return sort;
    }
}

有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币{10, 8, 5, 3, 27, 99}


public class Test {
    public static void main(String[] args) {
        int arr[]=new int[]{10,8,5,3,27,99};
        double count=0;
        for(int i=0;i<arr.length;i++){
            count=silver(arr[i]);
            System.out.println(arr[i]+"硬币: "+"一共"+count+"次");
        }
    }
    public static int silver(int number){
        int count=1;
        if(number==2||number==1){
           count+=1;
        }else {
           while (number>2){
               number=number-2;
               count++;
           }
        }
        return count;
    }
}


    

将数组中的重复数据去重


public class Test {
    public static void main(String[] args) {
        int arr[]=new int[]{10,8,5,3,27,99,3,5,7,8,10};
        int sort[]=new int[arr.length];
        for(int i=0;i<arr.length;i++){
               boolean repeat=true;
               for (int j=0;j<arr.length-i-1;j++){
                   if(arr[i] == arr[j]){
                       repeat=false;
                   }
               }
               if(repeat){
                   sort[i]=arr[i];
               }
        }

        for(int i=0;i<sort.length;i++){
            System.out.print(sort[i]+" ");
        }
    }

}


如何将10个0-10随机存入数组中



import java.util.Random;
public class Test {
    public static void main(String[] args) {
        int arr[]=new int[100];
        Random random_num =new Random();
        for (int i=0;i<arr.length;i++){
            int ran=random_num.nextInt(11);
            arr[i]=ran;
        }
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }

    }

}

(选做题)
    某个人进入如下一个棋盘中,要求从左上角开始走,
    最后从右下角出来(要求只能前进,不能后退),
    问题:共有多少种走法?
    
    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0




import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入行数:");
        int x=sc.nextInt();
        System.out.println("请输入列数:");
        int y=sc.nextInt();
        int count=run(x,y);
        System.out.println("方法总共有"+count+"种");

    }
    public static int run(int x,int y){
        int count=0;
        while (x>0&&y>0){
            if(x==1){
                count++;
                x=0;
            }else if(y==1){
                count++;
                y=0;
            }else {
                count=run(x-1,y)+run(x,y-1);
                break;
            }
        }
        return count;
    }

}

 

以上是关于java从小白开始的练习(四,数组)的主要内容,如果未能解决你的问题,请参考以下文章

java从小白开始的练习(五,面向对象)

java从小白开始的练习(三,函数练习)

java从小白开始的练习

java从小白开始的练习

java从小白开始的练习(包装类)

java从小白开始的练习(包装类)