Печатайте недвойный целочисленный элемент в массиве, используя Java, без использования встроенных методов - PullRequest
0 голосов
/ 17 января 2019
 public class Exercise {
  public static void main(String[] args) 
    {
        int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};

        for (int i = 0; i < my_array.length-1; i++)
        {
            for (int j = i+1; j < my_array.length; j++)
            {
                if ((my_array[i] == my_array[j]) && (i != j))
                {
                    System.out.print(my_array[j]);
                }
            }
        }
    }    
}

Ввод: {1, 2, 5, 5, 6, 6, 7, 2} Выход: {1, 7}

Мне нужно печатать только неповторяющиеся элементы в массиве без использования встроенных методов, как в примере выше. Пожалуйста, помогите. Заранее спасибо

Пробовал некоторые, как показано ниже, но это не работает для всех входов:

public class Exercise {
public static void main(String[] args) 
{
int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};
int[] unique = new int[20];
int uniqueLength = 0;

outerloop:for (int i = 0; i < my_array.length; i++)
{
for (int j = 0; j < uniqueLength; j++)
{
if (my_array[i] == unique[j])
{
continue outerloop;
}
}
unique[uniqueLength] = my_array[i];
System.out.println(my_array[i]);
uniqueLength++;
}
} 
}

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Чтобы печатать только неповторяющиеся числа, код очень похож на код, который вы показали, за исключением того, что цикл j должен повторять все значения, и вам нужно вывести оператор печати из цикла j, поэтомуВы можете печатать, когда дубликат не найден, вместо печати самих дубликатов.

int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};

for (int i = 0; i < my_array.length; i++) {
    boolean dup = false;
    for (int j = 0; j < my_array.length; j++) {
        if (i != j && my_array[i] == my_array[j]) {
            dup = true;
            break;
        }
    }
    if (! dup) {
        System.out.println(my_array[i]);
    }
}

Вывод

1
7
0 голосов
/ 17 января 2019

Вы можете попробовать это.

public class Exercise {

   public static void main(String []args) {
      int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};

      for (int i = 0; i < my_array.length-1; i++)
         {
          boolean is_non_dupe = true;
          for (int j = 0; j < my_array.length; j++)
            {
             if ((my_array[i] == my_array[j]) && (i!=j))
              {
                is_non_dupe = false;
              }
           }
           if(is_non_dupe){
            System.out.println(my_array[i]); 
           }
     }
  } 
}

OP: {1,7}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...