Java练习题——数字计算

数字计算

生成10个75-100之间(包含75和100)的随机整数,将其存放到数组中,并遍历输出数组的数据

求该数组的数据之和和平均数(平均数保留两位小数点)

求该数组的最大值和最小值

请任选冒泡、选择、插入或其他排序算法,对上述的数组进行排序,请注明你采用的排序算法

思路:

  • 生成随机数random,但是我们知道随机数的产生都是 [0,i)(i 是用户决定的最大值)
  • 这样就会不满足题目要求,我们可以这样做random.nextInt(26)+75;随机产生的最大值为25,最小值为0加上75就满足了条件
  • for循环将随机生成的整数添加到数组中
  • 遍历数组,同时将所有的数加起来
  • 求平均数保留两位小数,无论用double接收或者用float接收,都会导致精度不准
  • 所以我们在接收和的时候用double类型的变量存储即可,然后求平均值
  • 但是这样还是不满足保留两位小数,所以需要用String.format()包装,String avg1 = String.format("%.2f", avg);
  • 求最大值与最小值可以先进行排序再获取数组的头和尾下标进行输出

代码:

import java.util.Random;

public class A {
    public static void main(String[] args) {
        //定义数组
        int[] a = new int[10];
        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            a[i] = random.nextInt(26) + 75;//随机生成一个小于26的数,再加上75,无论如何都小于100且大于70
            System.out.print(a[i] + " ");
        }
        avg(a);
        sort(a);
    }

    //求平均数
    public static void avg(int[] randomList) {
        //声明变量sum,存储和
        double sum = 0;
        for (int i = 0; i < 10; i++) {
            sum = randomList[i] + sum;
        }
        System.out.println();
        //声明变量avg,存储平均数
        double avg = sum / 10;
        String avg1 = String.format("%.2f", avg);
        System.out.println("平均数为:" + avg1);
    }

    //冒泡排序
    public static void sort(int[] sort) {
        for (int i = 0; i < sort.length - 1; i++) {
            for (int j = 0; j < sort.length - 1 - i; j++) {
                if (sort[j] < sort[j + 1]) {
                    int temp = sort[j];
                    sort[j] = sort[j + 1];
                    sort[j + 1] = temp;
                }
            }
        }
        System.out.println();
        System.out.println("最大值为:" + sort[0]);
        System.out.println("最小值为:" + sort[sort.length - 1]);
        System.out.println();
        System.out.println("冒泡排序后的数组:");
        for (int i = 0; i < sort.length; i++) {
            System.out.print(sort[i] + " ");
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值