Java把一个数组中重复的元素去除,但保留第一个,明天交作业,急急急!!!!!!望大神帮助debug
题目要求去除一个数组中重复项,但保留第一个元素。下面是我写的代码。这个程序输入1232163452就会输出1231645没法去除结果中的第二个1importjava.ut...
题目要求去除一个数组中重复项,但保留第一个元素。下面是我写的代码。
这个程序输入1 2 3 2 1 6 3 4 5 2就会输出1 2 3 1 6 4 5
没法去除结果中的第二个1
import java.util.Scanner;
public class eliminate {
public static void main (String args []){
System.out.println("Enter ten numbers : ");
int[] a = new int [10];
import java.util.Scanner;
public class eliminate {
public static void main (String args []){
System.out.println("Enter ten numbers : ");
int[] a = new int [10];
Scanner reader = new Scanner(System.in);
for(int i = 0;i<10;i++){
a[i]=reader.nextInt();
}
System.out.print("The distinct numbers are: "+a[0]);
int n = 1;
int b = 0;
while (n < a.length){
if (a[n]==a[b]){
n+=1;
}else{
b+=1;
if(b == n){
System.out.print(" "+a[n]);
b = 0;
n+=1;
}
}
}
}
} 展开
这个程序输入1 2 3 2 1 6 3 4 5 2就会输出1 2 3 1 6 4 5
没法去除结果中的第二个1
import java.util.Scanner;
public class eliminate {
public static void main (String args []){
System.out.println("Enter ten numbers : ");
int[] a = new int [10];
import java.util.Scanner;
public class eliminate {
public static void main (String args []){
System.out.println("Enter ten numbers : ");
int[] a = new int [10];
Scanner reader = new Scanner(System.in);
for(int i = 0;i<10;i++){
a[i]=reader.nextInt();
}
System.out.print("The distinct numbers are: "+a[0]);
int n = 1;
int b = 0;
while (n < a.length){
if (a[n]==a[b]){
n+=1;
}else{
b+=1;
if(b == n){
System.out.print(" "+a[n]);
b = 0;
n+=1;
}
}
}
}
} 展开
1个回答
展开全部
package com.equals.test;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Circle {
public static void main(String args[]) {
System.out.println("Enter ten numbers : ");
int[] a = new int[10];
Scanner reader = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
a[i] = reader.nextInt();
}
reader.close();
//保留第一个
System.out.println("The first is :"+ a[0]);
System.out.println("The distinct numbers are: ");
Set<Integer> num = new HashSet<Integer>();
for(Integer n : a) {
num.add(n);
}
for(Integer n : num) {
System.out.println(n);
}
}
}
追问
那我写的错误在哪呢?
我运行的有些数组也可以输出正确答案,但是有时候就不行。。。。
大佬救救孩子。。。
追答
你本身这个算法就是错误的。没有办法标记哪些数据是已存的,你如果想使用数组,那就使用两个数组,一个一个放到另外一个数组,放之前检测一下是否已存在,最后输出新数组的值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询