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)区间变动,怎么解决,求解!
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
抵制不采纳的伸手党
//输入并打印字符串s Scanner in = new Scanner(System.in); String s=in.nextLine(); System.out.println(s); int sum=0; //创建字符串数组sarr,字符串s用split函数去空格后赋值给sarr,注:\s+表示匹配任意空白字符 String[] sarr=s.split("\\s+"); System.out.println(Arrays.toString(sarr)); /*创建整型数组arr,字符串sarr通过for循环一一赋值给arr,注:Integer.parseInt(String str) 是将有符号的十进制整数字符串转换成为int类型的数*/ 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));
是这样吗