#java #arrays
#java #массивы
Вопрос:
Возможно, я все делаю неправильно, но у меня есть массив чисел, и я хотел бы извлечь положительные числа из этого массива и поместить их в отдельный массив. Потенциально я хотел бы сделать то же самое с отрицательными числами.
Вот что я пробовал (код неправильный, но я застрял здесь на данный момент):
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
int [] arrayPositive = Arrays.copyOf(array, 13);
for (int i = 0; i < arrayPositive.length; i ) {
if (i > 0) {
System.out.println("" i);
}
}
Любая обратная связь будет более чем приветствоваться! Заранее спасибо.
Комментарии:
1. я думаю, что
if( i > 0)
вы имели в видуif(array[i] > 0)
иSystem.out.println("" array[i]);
вместо того, чтобы просто печатать счетную переменную.
Ответ №1:
Вот так
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
int l = array.length;
int[] arrayPositive = new int[l];
int[] arrayNegative = new int[l];
int i,j,k;
i=j=k=0;
for (i = 0; i < l; i ){
if (array[i] > 0) {
arrayPositive[j]=array[i];
j;
}
else if(array[i] < 0){
arrayNegative[k]=array[i];
k;
}
}
for (i = 0; i < l; i ){
System.out.println(arrayPositive[i] "t" arrayNegative[i]);
}
}
Ответ №2:
Если вы хотите извлечь положительные числа, ваш if должен проверить, больше ли каждый элемент массива 0, как в следующем коде.
for (int i = 0; i < arrayPositive.length; i) {
if (arrayPositive[i] > 0) {
System.out.println("" arrayPositive[i]);
}
}
Ответ №3:
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
int [] arrayPositive = new int[array.length];
for (int i = 0; i < array.length; i ) {
if (array[i] > 0) {
System.out.println("" array[i] );
arrayPositive[i]=array[i];
}
}
}