有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下:
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
Scanner ag = new Scanner(System.in);
System.out.println("请输入一个整数:");
int t = ag.nextInt();
int []arr = {12,14,23,45,66,68,70,77,90,91};
int []arr1=new int[11];
//50
int i=0;
while(i<11){
if(t>arr[i]){
arr1[i]= arr[i];
}else{
//50<66
arr1[i]=t;
i++;
while(i<11){
arr1[i]= arr[i-1];
System.out.println(arr1[i]);
i++;
}
i--;
}
if(i<10){
System.out.println(arr1[i]);
}
i++;
}
}
}
上面是我自己写的代码,有很多缺点。
下面是ai写的代码:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int userInput = scanner.nextInt();
int[] arr = {12, 14, 23, 45, 66, 68, 70, 77, 90, 91};
int[] resultArray = new int[arr.length + 1];
boolean inserted = false;
for (int i = 0, j = 0; i < arr.length || j < resultArray.length; j++) {
if (!inserted && (i == arr.length || userInput <= arr[i])) {
resultArray[j] = userInput;
inserted = true;
} else {
resultArray[j] = arr[i];
i++;
}
System.out.println(resultArray[j]);
}
}
}