Как найти все отрицательные элементы массива

Okay, so i need to find all the negative numbers of array and return them.I found the negative number, but how do i return them all? P.S yes i am a beginner.

public static void main(String[] args) {
        int [] array = {5,-1,6,3,-20,10,20,-5,2};
        System.out.println(findNumber(array));
    }




public static int findNumber(int[] sum) {
    int num = 0;
    for (int i = 0; i < sum.length ; i++) {
        if(sum[i] < num) {
            num = sum[i];
        }
    }
    return num;
}

asked Nov 15, 2016 at 20:45

Kristjan Tampere's user avatar

7

Java 8 based solution. You can use stream to filter out numbers greater than or equal to zero

    public static int[] findNumber(int[] sum)
    {
        return Arrays.stream(sum).filter(i -> i < 0).toArray();
    }

answered Nov 15, 2016 at 20:52

Raghav's user avatar

RaghavRaghav

4,5701 gold badge22 silver badges32 bronze badges

There are multiple ways of doing this, if you just want to output all of the negative numbers easily you could do this:

public static void main(String[] args) {
    int [] array = {5,-1,6,3,-20,10,20,-5,2};
    ArrayList<Integer> negativeNumbers = findNumber(sum);
    for(Integer negNum : negativeNumbers) {
        System.out.println(negNum);
    }
}

public static ArrayList<Integer> findNumber(int[] sum) {
    ArrayList<Integer> negativeNumbers = new ArrayList<>();
    for (int i = 0; i < sum.length ; i++) {
        if(sum[i] < 0) {
          negativeNumber.add(sum[i]);
        }
    }
    return negativeNumbers;
}

answered Nov 15, 2016 at 20:52

Matthew Brzezinski's user avatar

As you told you are beginner, i’m giving code in using arrays only.

Whenever you come across a negative number, just add it to the array and increment it’s index number and after checking all the numbers, return the array and print it.

public static void main(String[] args)
{
    int [] array = {5,-1,6,3,-20,10,20,-5,2};
    int[] neg = findNumber(array);
    for(int i = 0 ; i<neg.length; i++)
    {
        System.out.println(neg[i]);
    }
}

public static int[] findNumber(int[] a)
{
    int j=0;
    int[] n = new int[a.length];
    for(int i = 0; i<a.length ; i++)
    {
        if(a[i] <0)
        {
            n[j] = a[i];
            j++;
        }
    }

    int[] neg = new int[j];
    for( int k = 0 ; k < j ; k++)
    {
        neg[k] = n[k];
    }

    return neg;
}

I hope it helps.

answered Nov 15, 2016 at 20:54

SkrewEverything's user avatar

SkrewEverythingSkrewEverything

2,3731 gold badge18 silver badges49 bronze badges

5

You can modify your method to iterate through the array of numbers, and add every negative number you encounter, to a List.

public static List<Integers> findNegativeNumbers(int[] num) {
    List<Integers> negativeNumbers = new ArrayList<>();
    for (int i = 0; i < num.length; i++) {
        if(num[i] < 0) {
            negativeNumbers.add(num[i]);
        }
    }
    return negativeNumbers;
}

You could then print out the list of negative numbers from this method itself, or return the list with return to be printed in main.

answered Nov 15, 2016 at 20:57

Manish Giri's user avatar

Manish GiriManish Giri

3,5428 gold badges45 silver badges81 bronze badges

You code is returning the sum of elements, but I understood that you wanted every negative number.
So, I assumed you want something like this:

public static void main(String[] args) {
  int [] array = {5,-1,6,3,-20,10,20,-5,2};
  Integer [] result = findNumbers( array );
  for( int i : result )
  {
    System.out.println( i );
  }
}
public static Integer[] findNumbers(int[] v) {
  List<Integer> list = new ArrayList<>();
  for (int i = 0; i < v.length ; i++) {
      if(v[i] < 0) {
          list.add(v[i]);
      }
  }
  return list.toArray( new Integer[0] );
}

Is it?

Best regards.

Nadim Baraky's user avatar

answered Nov 15, 2016 at 20:54

MiguelKVidal's user avatar

MiguelKVidalMiguelKVidal

1,4881 gold badge15 silver badges23 bronze badges

public static int[] findNum(int[] array)
{
    int negativeIntCount = 0;
    int[] negativeNumbers = new int[array.length];
    for(int i = 0; i < array.length; i++)
    {
        if(array[i] < 0)
        {
            negativeIntCount++;
            negativeNumbers[i] = array[i];
        }
    }

    System.out.println("Total negative numbers in given arrays is " + negativeIntCount);

    return negativeNumbers;
}

To display as an array in output :

System.out.println(Arrays.toString(findNum(array)));

To display output as space gaped integers :

for(int x : findNum(array))
{
    System.out.print(" " + x)
}

answered Oct 15, 2021 at 5:46

fifa068

0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 93

1

Найти отрицательные элементы массива (исправить код)

25.09.2012, 18:18. Показов 6268. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

здравствуйте. помогите найти ошибку в цикле. надо сдлеать через цикл while. но у меня что то не получается. заранее спасибо. условие : нужно найти отрицательные элементы массива.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
 
class Program
{
    static void Main(string[] args)
    {
        int i;
        Console.Write("Размер массива: ");
        int size = int.Parse(Console.ReadLine());
        int[] array = new int[size];
        Random random = new Random();
        int negativeCount = 0;
        
        while (array[i] <0)
        {
            array[i] = random.Next(-100, 100);
            Console.Write(array[i] + " ");
            
        }
        Console.WriteLine("nКоличество отрицательных: " + negativeCount);
        Console.Read();
    }
}



0



Эксперт .NET

17203 / 12657 / 3321

Регистрация: 17.09.2011

Сообщений: 20,933

25.09.2012, 19:01

2

Ваш алгоритм:
1. Считать размер массива с консоли.
2. Создать массив с указанным размером
3. Установить значение negativeCount на 0.
4. Если элемент массива под индексом i меньше нуля, то goto 5, в противном случае goto 8
5. Присвоить элементу массива под индексом i случайное значение в промежутке от -100 до 99 включительно
6. Вывести элемент массива под индексом i в консоль.
7. goto 4
8. Вывести количество отрицательных чисел в консоль
9. Считать символ с консоли
10. End.

Что не так в вашем алгоритме?
Как бы вы его исправили?

Начните с алгоритма, а потом уже по нему пишите код.



0



Sniper[BNA]™

16 / 16 / 1

Регистрация: 07.05.2012

Сообщений: 66

25.09.2012, 20:33

3

C#
1
2
3
4
 while (array[i] <0)
        {
            array[i] = random.Next(-100, 100);
            Console.Write(array[i] + " ");

К чему это тут вообще?
Я хоть на низшей стадии изучения c#, но тут явно фейл.
Если i-ый элемент массива array < 0 то присвоить ему рандомное значение от — 100 до +
ничего не понятно…



0



fastpock

0 / 0 / 0

Регистрация: 21.05.2012

Сообщений: 8

25.09.2012, 20:38

4

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
class ArrayDemo
{
    static void Main()
    {
        Console.WriteLine("Размер массива:");
        int size = int.Parse(Console.ReadLine());
        int[] array = new int [size];
        Random rand = new Random();
        int i=0; int negativeCount = 0;
        while (i <size)
        {
            array[i] = rand.Next(-100, 100);
            if (array[i] < 0)
            {
                negativeCount++;
            }
            Console.Write(array[i] + " ");
            i++;       
        }  
        Console.WriteLine("n"+negativeCount);
        Console.ReadLine();
    }
}

как-то так вроде…



0



fifa068

0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 93

25.09.2012, 20:57

 [ТС]

5

Цитата
Сообщение от fastpock
Посмотреть сообщение

C#
1
using System;...}

как-то так вроде…

спасибо тебе большое. ошибка в том что в цикле забыл поставить условие.. еще раз спасибо огромное



0



Все начинающие программисты, осваивающие python, сталкиваются с массивами. На этой странице представлены простейшие операции с одномерными массивами.

Программа на языке программирования Python:

Создание одномерного массива и вывод на экран наименьшего элемента 

from random import randint
n=10
a=[0]*n
for i in range(n):
    a[i]=randint(-50, 50)
    print(a[i], end=' ')
print(sep='d')
x=50
for i in range(n):
    if a[i]<x:
        x=a[i]
print('наименьшее число', x)

Создаём массив размерностью 10, заполняем его случайными числами из диапазона от -50 до 50. Вводим переменную «x», равную максимально возможному числу в данном промежутке, и ищем наименьший элемент массива.

Аналогичная программа для поиска наибольшего числа массива.

from random import randint
n=10
a=[0]*n
for i in range(n):
    a[i]=randint(-50, 50)
    print(a[i], end=' ')
print(sep='d')
x=-50
for i in range(n):
    if a[i]>x:
        x=a[i]
print('наибольшее число', x)

Теперь отсортируем массив и выведем все отрицательные числа.

Вывод всех отрицательных элементов массива (python)

from random import randint
n=10
a=[0]*n
for i in range(n):
    a[i]=randint(-50, 50)
    print(a[i], end=' ')
print(sep='d')
for i in range(n):
    if a[i]<0:
        print(a[i])

Почти такая же программа для вывода всех положительных элементов 

from random import randint
n=10
a=[0]*n
for i in range(n):
    a[i]=randint(-50, 50)
    print(a[i], end=' ')
print(sep='d')
for i in range(n):
    if a[i]>0:
        print(a[i])

Смотрите также:

Формулировка задачи:

Дан массив из 10 целых чисел, вывести отрицательные элементы массива

что же так долго

Код к задаче: «Вывести отрицательные элементы массива»

textual

const
    n = 10;
var
    ar: Array[1..n] Of ShortInt;
    i: 1..n;
begin
    Randomize(); Write('Original array:');
    for i := 1 to n do
    begin
        ar[i] := Random(199) - 99;
        Write(ar[i]:4);
    end;
    WriteLn; Write('Negative elements:');
    for i := 1 to n do
        if (ar[i] < 0)
        then
            Write(ar[i]:4);
end.

Полезно ли:

13   голосов , оценка 4.154 из 5

Напишем программу, которая определяет наличие в массиве отрицательных чисел.

 Определение наличия в массиве отрицательных чисел.


program massiv8;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
k:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -100+random (201);
write (A[i]:5)
end;
writeln;
k:=0;
for i:=1 to N do
if a[i] <0 then="" li="">
inc (k);
if k>0 then
begin
writeln ('В массиве есть отрицательные элементы');
writeln ('Количество отрицательных элементов = ',k:5);
end
else
writeln ('В массиве нет отрицательных элементов');
readln
end.


В строке №7 записываем переменную для хранения количества отрицательных элементов.

Строка №13-№14 генерируем случайные числа и выводи их на экран.

В строке №17 присваиваем «K» первоначальное значение равное 0.

В строке №19 записываем условие: если значение элемента массива (т.е. если сгенерированное число) меньше 0, тогда увеличиваем переменную «K» на единицу (строка №20).

В строке №21 записываем условие: если K>0 (т.е. если количество отрицательных чисел больше 0), тогда выводим на экран 2 сообщения (строка №23 и №24). В обратном случае (строка №26), выводим другое сообщение (строка №27).

nakhozhdenie otricateljnihkh ehlementov massiva

nakhozhdenie otricateljnihkh ehlementov massiva.


Предыдущая статья : Подсчет количества четных элементов в массиве.

Оглавление : Уроки Паскаль. Массивы.

Следующая статья : Нахождение номера отрицательного элемента в массиве.


Понравилась статья? Поделить с друзьями:
  • Как найти работу на складе в москве
  • Как найти доцента сталкер солянка
  • Как составить финансовый график на предприятии
  • Как найти угол между скрещивающимися плоскостями
  • Как найти среднее численное значение