题目:有N个数据,存放在数组A中,现输入一个数据x,要在数组A中删除第一次出现的数据x。(如果删除数组A中的所有数据x,如何实现呢?)
代码:
public static void main(String[] args) {
int N;
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组中数据的个数:");
N = sc.nextInt();
int[] A = new int[100];
//完成数组的初始化
for (int i = 0; i < N; i++) {
System.out.println("请输入数组中第" + (i + 1) + "个数据");
A[i] = sc.nextInt();
}
int x;
System.out.println("请输入要删除的数据x:");
x = sc.nextInt();
boolean flag = false;//false表示数组中不能存在数据x
for (int i = 0; i < N; i++) {
if (x==A[i]){
flag = true;
//通过数组迁移删除数组中第一次出现的x
for (int j = i; j < N; j++) {
A[j] = A[j+1];
}
N--;
break;
//如果要删除所有x,删掉break即可
}
}
if (flag){
System.out.print("删除第一次出现的x后:");
for (int i = 0; i < N; i++) {
System.out.print(A[i] + " ");
}
}else {
System.out.println("数组A中不存在数据" + x);
}
}