明月时月明 2021-04-24 21:36 采纳率: 16.7%
浏览 77

Java如何解决数组的长度

package cn.tx;          //组个最小数

import java.util.Scanner;

public class Demo1 {

    public static boolean obj(int[] arr){//bool为true表示数组不含0,否则含0
        boolean bool = true;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 0){
                bool = false;
                break;
            }
        }
        return bool;
    }
    public int[] swap(int[] arr) {//数组不含0
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int cnt = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = cnt;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args) {//定义一个数组,输入数组元素的值。如果数组长度大于10,且小于等于50,
        int[] arr = new int[10];
        Scanner in = new Scanner(System.in);
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = in.nextInt();
            sum+=arr[i];
        }

        Demo1 demo = new Demo1();
        if (sum>=1){
            //判断数组元素是否含0,若不为0,则进行排序;若为0,考虑数字第一位不能为0
            if (obj(arr)) {
              int[] arr1=demo.swap(arr);
              for (int i = 0; i < arr1.length; i++) {
                  System.out.print(arr1[i]);
              }
            }
            else{
                int[] arr2=demo.swap(arr);
                for (int i = 0; i < arr2.length; i++) {
                    if(arr2[i]!=0){
                        int ar=arr2[i];
                        arr2[i]=arr2[0];
                        arr2[0]=ar;
                        break;
                    }
                }
                for (int i = 0; i < arr2.length; i++) {
                    System.out.print(arr2[i]);
                }
            }
        }
    }
}

当数组长度为10,可运行,数组的长度在(<=50)区间变动,怎么解决,求解!

  • 写回答

3条回答 默认 最新

  • allway2 2021-04-24 22:02
    关注
    package ask;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Demo2 {
    
    	public static boolean obj(int[] arr) {// bool为true表示数组不含0,否则含0
    		boolean bool = true;
    		for (int i = 0; i < arr.length; i++) {
    			if (arr[i] == 0) {
    				bool = false;
    				break;
    			}
    		}
    		return bool;
    	}
    
    	public int[] swap(int[] arr) {// 数组不含0
    		for (int i = 0; i < arr.length - 1; i++) {
    			for (int j = 0; j < arr.length - i - 1; j++) {
    				if (arr[j] > arr[j + 1]) {
    					int cnt = arr[j];
    					arr[j] = arr[j + 1];
    					arr[j + 1] = cnt;
    				}
    			}
    		}
    		return arr;
    	}
    
    	public static void main(String[] args) {// 定义一个数组,输入数组元素的值。如果数组长度大于10,且小于等于50,
    
    		Scanner in = new Scanner(System.in);
    		int sum = 0;
    		String s = "";
    
    		s = in.nextLine();
    		System.out.println(s);
    		String[] sarr = s.split("\\s+");
    		System.out.println(Arrays.toString(sarr));
    		int[] arr = new int[sarr.length];
    		for (int i = 0; i < sarr.length; i++) {
    			arr[i] = Integer.parseInt(sarr[i]);
    			sum += arr[i];
    		}
    		System.out.println(Arrays.toString(arr));
    
    		Demo2 demo = new Demo2();
    		if (sum >= 1) {
    			// 判断数组元素是否含0,若不为0,则进行排序;若为0,考虑数字第一位不能为0
    			if (obj(arr)) {
    				int[] arr1 = demo.swap(arr);
    				for (int i = 0; i < arr1.length; i++) {
    					System.out.print(arr1[i]);
    				}
    			} else {
    				int[] arr2 = demo.swap(arr);
    				for (int i = 0; i < arr2.length; i++) {
    					if (arr2[i] != 0) {
    						int ar = arr2[i];
    						arr2[i] = arr2[0];
    						arr2[0] = ar;
    						break;
    					}
    				}
    				for (int i = 0; i < arr2.length; i++) {
    					System.out.print(arr2[i]);
    				}
    			}
    		}
    	}
    }
    

    9 7 5 2 1 3 5 2 9 3 5 6 7 2 8
    9 7 5 2 1 3 5 2 9 3 5 6 7 2 8
    [9, 7, 5, 2, 1, 3, 5, 2, 9, 3, 5, 6, 7, 2, 8]
    [9, 7, 5, 2, 1, 3, 5, 2, 9, 3, 5, 6, 7, 2, 8]
    122233555677899

    评论

报告相同问题?

悬赏问题

  • ¥15 HTML5的section文字占地问题
  • ¥15 这个结构体为什么会出错呢?
  • ¥15 ROH绘图及近交系数的计算
  • ¥15 手动下载基因拼接数据库的渠道
  • ¥30 微机原理相关问题,求解
  • ¥15 多种类数据输入的语义分割模型方法有吗
  • ¥15 cesium二维地图绘制实体rectangle颜色问题
  • ¥15 网络分析仪面板参数解释
  • ¥15 车载image sensor的 datasheet
  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配