我正在尝试查找数组中重复的元素。程序旨在吸引用户输入。
以下是代码:
package sortingattempt;
import java.util.Scanner;
public class ArraySimilar {
public static void main(String args[]){
int[] a = new int[100];
int[] b = new int[5];
int Duplicate = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter size of array");
int size = sc.nextInt();
//Scanner elem = new Scanner(System.in);
System.out.println("Input elements in array" +size);
for(int j = 0;j<size;j++){
a[j] = sc.nextInt();
}
System.out.println(a.length);
System.out.println("a[]" + a.toString());
for (int i = 0; i < a.length;i++){
b[0] = a[i];
if (b[0] == a[i+1]){
Duplicate = b[0];
System.out.println(Duplicate);
}
i++;
}
System.out.println("No common variable");
}
}
当我尝试运行它时,它正常运行直到我要求用户输入的行。输入输入后没有任何事情发生。请在程序中注明错误。谢谢。
答案 0 :(得分:1)
我认为发生的事情是你没有被提示输入一个System.out.println("Enter a number: ");
的号码所以你认为该程序不起作用,真的只是等着你继续输入号码。您可能希望在每次迭代时提示System.out.println()
:
System.out.println("Input elements in array" +size);
for(int j = 0;j<size;j++){
System.out.println("Enter a number: ");
a[j] = sc.nextInt();
}
此外,您手动初始化阵列。您是否应该等待用户输入大小,然后初始化它们?
int[] a;
int[] b;
Scanner sc = new Scanner(System.in);
System.out.println("Enter size of array");
int size = sc.nextInt();
a = new int[size];
b = new int[size];
另外,尝试打印a.toString()不会提供所需的输出。你必须遍历它或做这样的事情
System.out.println("a[] " + Arrays.asList(a));
编辑:比较
你应该在第一个循环中使值等于
for(int j = 0;j<size;j++){
System.out.println("Enter a number: ");
a[j] = sc.nextInt();
b[j] = a[i];
}
然后在底部循环中,在嵌套循环中进行比较
int dupCount = 0;
for (int i = 0; i < size; i++){
for (int j = 0; j < size; j++){
if (b[i] == a[j]){
Duplicate = a[j];
System.out.println(Duplicate);
dupCount = 0;
}
}
}
if (dupCount == 0)
System.out.println("No common variable");
答案 1 :(得分:0)
另一个错误是您需要从此代码块中删除i ++
Duplicate = b[0];
System.out.println(Duplicate);
}
i++; //delete that
}
同样改变
System.out.println("Input elements in array" +size);
for(int j = 0;j<size;j++){
a[j] = sc.nextInt();
}
System.out.println(a.length);
System.out.println("a[]" + a.toString());//change that to a[j] and put it inside the loop.
我在这里假设您要打印数组的元素,因此a.toString不会这样做。