アレイの問題

1、正でない以上5以下の整数、および数字の数、反転印刷を追求します

import java.util.Scanner;

/**
 * 给一个不多于5位的正整数,求是几位数,逆序打印各位数字
 * @author  努力Coding
 * @version
 * @data    2020年1月8日 
 */
public class HowManyNum {

    public static void main(String[] args) {
        int[] arr = new int[5];//声明一个数组存放逆序输出的各位数
        
        System.out.println("输入一个不多于5位的正整数:");
        Scanner input = new Scanner(System.in);
        
        if(input.hasNextInt()) {//判断输入是否为整数
            int num = input.nextInt();
            if(num > 99999 || num < 0) {//判断是否不多于5位
                System.out.println("非法输入,请输入不多于5位的正整数");
            }else {
                String count = String.valueOf(num);//计算有多少位
                System.out.println(num + "是" + count.length() + "位数");
                for(int i = 0; i < count.length(); i++) {
                    arr[i] = num % 10;//取个位
                    num /= 10;//去个位
                }
                System.out.println("逆序输出各位数:");
                for(int i = 0; i < count.length(); i++) {//遍历输出
                    System.out.print(arr[i] + ",");
                }
            }
        }else {
            System.out.println("非法输入,请输入不多于5位的正整数");
        }
        input.close();//关闭输入
    }

}

図2は、nは整数であり、それは配列番号m後方位置の各々の前方に移動し、最後に一番の数mの数mに

import java.util.Scanner;

/**
 * 有n个整数,使其前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数
 * @author  努力Coding
 * @version
 * @data    2020年1月8日 
 */
public class MovePosition {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入整数的个数:");
        int len = input.nextInt();//元素个数,即数组长度
        int[] arr = new int[len];//声明一个数组
        for(int i = 0; i < len; i++) {//输入数组元素
            System.out.println("请输入第" + (i+1) + "个数字");
            arr[i] = input.nextInt();
        }
        System.out.println("-------------------");
        System.out.println("当前输入的数组元素为:");
        for(int i = 0; i < len; i++) {
            System.out.print(arr[i] + ",");
        }
        System.out.println();
        System.out.println("-------------------");
        System.out.print("请输入向后移动几位:");
        int moveNum = input.nextInt();//移动多少位
        if(moveNum > len || moveNum < 0) {//移动位数不能超过数组长度,也不能小于0
            System.out.println("输入不合法");
        }
        int[] newArr = new int[len];//声明一个新数组
        for(int i = 0; i < len; i++) {
            newArr[i] = arr[i];//把旧数组的元素给新数组
        }
        for(int i = 0; i < len; i++) {
            int temp = (i + moveNum) % len;//移动后的新位置
            arr[temp] = newArr[i];//获取新位置后的数组
        }
        System.out.println("-------------------");
        System.out.println("向后移动" + moveNum +"位后数组元素为:");
        for(int i = 0; i < len; i++) {
            System.out.print(arr[i] + ",");
        }
        input.close();
    }
}

ランダムアレイに記憶された乱数を生成し、10サイクルを用いて図3に示すように、印刷された、最大値、最小値を見つけます。

import java.util.Random;

/**
 * 使用循环随机生成10个随机数存放在数组中,找出最大,最小值,打印出来
 * @author  努力Coding
 * @version
 * @data    2020年1月8日 
 */
public class RandNum {

    public static void main(String[] args) {
        int[] arr = new int[10];//声明一个数组存放随机数
        /*假设第一个元素是最大值和最小值*/
        int max = arr[0];//最大值
        int min = arr[0];//最小值
        for (int i = 0; i < arr.length; i++) {
            Random random = new Random();//产生随机数
            arr[i] = random.nextInt(10);//0-10之间的随机数
        }
        System.out.println("生成的数组是:");
        for(int x : arr) {
            System.out.print(x + ",");//打印随机数生成的数组
        }
        for (int i = 0; i < arr.length; i++) {
            if(max < arr[i]) {//判断 最大值
                max = arr[i];
            }
            if(min > arr[i]) {//判断 最小值
                min = arr[i];
            }
        }
        System.out.println();
        System.out.println("最大的是:" + max + ",最小的是:" + min);
    }

}

おすすめ

転載: www.cnblogs.com/Zhouge6/p/12168729.html