Renshinzen Ответов: 2

Как переместить все нули в массиве в конец? (Ява)


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

Но все, что я получаю-это только нули.

Пример:
4 (размер массива)
2 0 0 3 (элементы массива)

выход:
2 3 0 0 (ожидаемый выход)

Мой выход:
0 0 0 0

Edit: пожалуйста, дайте мне исправленный код.

Что я уже пробовал:

import java.io.*;
import java.util.*;
public class PartitionZeroElement {  
     
    static void moveZeroElementToEnd(int[] array) {  
        int size = array.length;  
        int count = 0;  
  
        for (int i = 0; i < size; i++) {  
            if (array[i] != 0) {  
                array[count++] = array[i];  
            }  
        }  
  
        while (count < size)  
            array[count++] = 0;  
    }  
  
    public static void main(String[] args) {  
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        int[] array = new int[t] ; 
        moveZeroElementToEnd(array);  
  
        System.out.println("Array After Zero Elements moved to end :");  
  
        for (int i = 0, size = array.length; i < size; i++)  
            System.out.print(array[i] + " ");  
    }  
}  

2 Ответов

Рейтинг:
5

debasish mishra

Использовать сортировка вставками по возрастанию или убыванию


Рейтинг:
14

Jochen Arndt

Вы забыли прочитать элементы массива из пользовательского ввода:

// This is missing in your code:
for (int i = 0; i < t; i++) {  
    array[i] = in.nextInt();
}
//
moveZeroElementToEnd(array);


Renshinzen

О да! Большое спасибо!! :)

CPallini

5.