3.定义一个数组,让用户输入一个数,然后把数组中与该数相同的数都删除,输出把新数组循环打印输出 // 例如: arr={1,3,4,1,2,3,4} // 用户输入: 2 // arr={1,3,4,1,3,4}
时间: 2024-10-13 17:16:23 浏览: 53
在Java中,你可以通过以下步骤定义一个数组,让用户输入一个数字并删除数组中所有与之相等的元素:
1. 首先,创建一个整型数组,并初始化一些值,比如`arr = new int[]{1, 3, 4, 1, 2, 3, 4};`
2. 然后,使用`Scanner`类获取用户输入的数值,例如`int userInput = scanner.nextInt();`
3. 使用一个`for`循环遍历数组,检查每个元素是否等于用户输入的值。如果相等,则跳过当前元素,继续下一次迭代;如果不相等,就将其保留下来。可以创建一个新的数组来保存不重复的元素,或者直接对原数组进行操作,但要注意原地修改数组会影响索引。
4. 循环结束后,打印出新数组。由于我们可能是在原数组上操作的,所以可以直接遍历原数组打印,如`for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); }`
下面是示例代码片段:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = {1, 3, 4, 1, 2, 3, 4};
System.out.println("初始数组: ");
printArray(arr);
System.out.println("请输入一个数字: ");
int userInput = scanner.nextInt();
// 更新数组,移除与用户输入相同的元素
for (int i = 0; i < arr.length; ) {
if (arr[i] == userInput) {
while (i < arr.length - 1 && arr[i + 1] == userInput) { // 如果连续有相同的元素,一起删除
i++;
}
System.arraycopy(arr, i + 1, arr, i, arr.length - i - 1); // 移动剩余元素到前面
arr = Arrays.copyOfRange(arr, 0, arr.length - 1); // 减小数组长度
} else {
i++;
}
}
System.out.println("处理后的数组: ");
printArray(arr);
scanner.close();
}
private static void printArray(int[] array) {
for (int num : array) {
System.out.print(num + " ");
}
System.out.println();
}
}
```
阅读全文