Java:黑马程序员关于数组的几个练习

1:请创建一个长度为6的整数数组,并为数组中的元素赋值。遍历数组,打印所有元素,元素之间用空格隔开。

int []arr = new int []{1,2,3,4,5,6};;
for(int i=0;i<arr.length;i++){
    System.out.print(arr[i]+" ");
}

2:现有一个小数数组{12.9, 53.54, 75.0, 99.1, 3.14}。请编写代码,找出数组中的最小值并打印。

double[] arr = new double[]{12.9, 53.54, 75.0, 99.1, 3.14};
        double max = 0;
        int min=arr.length-1;
        for (int i = 0; i < arr.length - 1; i++) {
            if (arr[i + 1] > arr[i]) {
                max = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = max;
            }
        }
        for(int j=0;j<arr.length;j++){
            System.out.print(arr[j]+ " ");
        }
        System.out.println("\n"+"数组中最小值是"+arr[min]+ " ");

3:创建一个长度为6的整数数组。请编写代码,随机生成六个0(包含)-100(不包含)之间的整数存放到数组中,然后计算出数组中所有元素的和并打印。

import java.util.Random;//引用Random包
public class factorial {
    public static void main(String[] ages) {
        Random r=new Random();//创建对象
        //创建sum获取和
        int sum=0;
        //创建数组,长度为6
       int []arr=new int[6];
       //用for循环遍历整个数组
        for (int i = 0; i < arr.length; i++) {
            int ran=r.nextInt(100);//将0-99随机赋值给ran
            arr[i]=ran;//将随机数赋值进入数组
            sum+=arr[i];//将所有数组元素相加
            System.out.print(arr[i]+ " ");
        }
        //换行输出和
        System.out.println("\n"+sum);
    }
}

4:现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:

import java.util.Random;

public class factorial {
    public static void main(String[] ages) {
        int[] arr = new int[5];
        int sum = 0;//接受最后得到的整数
        Random r = new Random();
        //将随机数0-9赋值给数组
        for (int i = 0; i < arr.length; i++) {
            int ran = r.nextInt(10);
            arr[i] = ran;
            //将数组每个元素变成整数的一部分,由0位变成整数的最大为,arr.length位变成个位
            sum = sum * 10 + ran;
        }
        System.out.println("\n" + sum);
    }
}

5:定义一个数组来存储10个学生的成绩,例如:{72, 89, 65, 87, 91, 82, 71, 93, 76, 68}。计算并输出学生的平均成绩

import java.util.Random;

public class factorial {
    public static void main(String[] ages) {
        Random r = new Random();
        int x = 1;//作为计数器
        int sum=0;//作为和以便计算平均数
        int[] arr = new int[10];//定义数组存储10个学生的数据
        for (int i = 0; i < arr.length; i++) {
            int ran = r.nextInt(100) + 1;
            arr [i] =ran;
            sum+=ran;
            x++;
        }
        System.out.println("10个学生平均数是"+sum/x);
    }
}

6:(很难)有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下:

请输入一个整数数字:
50
生成的新数组是:12 14 23 45 50 66 68 70 77 90 91

import java.util.Scanner;

public class factorial {
    public static void main(String[] ages) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[]{12, 14, 23, 45, 66, 68, 70, 90, 91};//定义数组
        int[] brr = new int[arr.length + 1];
        System.out.println("请输入一个整数");
        int num = sc.nextInt();
        //利用循环来对数组数字进行比较,用“i”表示索引位置
        int i = 0;
        //因为&&判断第一个为false时就会输出整体会false,所以必须把(i<arr.length)放在前边
        //如果不加(i<arr.length)限制那么当输入的数值大于arr【】数组里的所有数值时就会报错,因为arr【9】不存在
        //用while循环获取比num小的数组的数值放进brr[]里面
        while ((i < arr.length) && (num > arr[i])) {
            brr[i] = arr[i];
            i++;
        }
        //brr[i] = num当sum<i时,让num放置在i上,然后将brr数组数字后移一位,将arr数值打印在sum后面
        for (brr[i] = num; i < arr.length; i++) {
            brr[i + 1] = arr[i];
        }
        //遍历brr数组输出brr数组
        for (int n = 0; n < brr.length; n++) {
            System.out.print(brr[n] + " ");
        }
    }
}

7:(很难)定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)


import java.util.Random;

public class factorial {
    public static void main(String[] ages) {
        Random r = new Random();
        int[] arr = new int[6];
        int[] brr = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            int ran = r.nextInt(99) + 1;//1-99取随机数
            arr[i] = ran;
        }
        int j = 0;//定义数组brr的标识位
        //循环找出奇数放入brr数组
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 != 0) {
                brr[j] = arr[i];
                j++;
            }
        }
        //循环找出偶数放入brr数组
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 2 == 0) {
                brr[j] = arr[i];
                j++;
            }
        }
        //循环打印数组
        for (int i = 0; i < brr.length; i++) {
            System.out.print(brr[i] + " ");
        }
    }
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值