Как посчитать количество отрицательных чисел в массиве
Перейти к содержимому

Как посчитать количество отрицательных чисел в массиве

  • автор:

Количества отрицательных и положительных элементов в массиве

В заданном массиве чисел найти (посчитать) количество положительных и количество отрицательных элементов.

Например, задан массив целых чисел [10, -5, 3, 2, 0, -1, 8, 0, 10, 3]. В нем 6 положительных и 2 отрицательных элемента (нули ни к тем, ни к другим не относятся).

Для решения данной задачи введем две переменные ( pos и neg ) для подсчета количества соответственно положительных и отрицательных элементов массива.

Будем проверять очередной элемент-число в том же цикле, в котором массив заполняется. Если элемент меньше нуля, значит будем увеличивать на 1 переменную neg . Иначе, если элемент больше нуля, будем увеличивать pos . Мы не можем опустить проверку на положительность (которая идет второй), ведь число может оказаться равным нулю, и в таком случае никакую переменную-счетчик увеличивать не надо.

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

Исходный код программы поиска количества положительных и отрицательных элементов массива на языке Pascal:

const N = 10; var a: array[1..N] of integer; i, pos, neg: byte; begin randomize; pos := 0; neg := 0; for i := 1 to N do begin a[i] := random(7) - 3; write(a[i], ' '); if a[i] < 0 then neg := neg + 1 else if a[i] >0 then pos := pos + 1; end; writeln; writeln('Положительных: ', pos); writeln('Отрицательных: ', neg); end.
3 1 -3 -3 -1 1 0 0 2 -2 Положительных: 4 Отрицательных: 4

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

Добрый вечер!
Условия задачи: Дано одномерный массив А, состоящий из 18 элементов. Вычислить и напечатать сумму отрицательных одинаковых элементов.

Не понимаю, как мне подсчитать суму отрицательных значений и отсортировать массив, чтобы одинаковые элементы можно было вводить в разброс (если я ввожу одинаковые элементы в разброс, ничего не работает).
Спасибо!
Код задачи:

#include #include #define N 18 int main() < int i, sum=0; int a[N] = ; printf("Выходные данные = "); for (i = 0; i < N; i++) < printf("%d ", a[i]); >printf("\nПарные элементы = "); for (i = 0; i < N; i++) < if (a[i] == a[i - 1] && a[i] < 0) < printf("%i ", a[i]); >> for (i = 0; i < N; i++) < sum += a[i] < 0; >printf("\nСумма отрицательных элементов = %d", sum); >
  • Вопрос задан более трёх лет назад
  • 4331 просмотр

Комментировать

Решения вопроса 1

myjcom

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

#include #define N 18 int main() < int a[N] = ; int checked[N] = ; int total = 0; for(int i = 0; i < N - 1; i++) < if(a[i] < 0) < int sum = a[i]; for(int j = i + 1; j < N; j++) < if(!checked[j] && a[i] == a[j]) < sum += a[j]; checked[j] = 1; >> if(sum != a[i]) < total += sum; >> > (total) ? printf("total sum %d", total) : printf("not found"); return 0; >
#include #define N 18 int main() < int a[N] = ; int checked[N] = ; int total = 0; for(int i = 0; i < N - 1; i++) < if(a[i] < 0) < int count = 1; for(int j = i + 1; j < N; j++) < if(!checked[j] && a[i] == a[j]) < count++; checked[j] = 1; >> if(count > 1) < total += a[i] * count; // Тут сложение можно заменить умножением printf("number %d count %d sum %d\n", a[i], count, a[i] * count); >> > (total) ? printf("total sum %d", total) : printf("not found"); return 0; >

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Количество разных чисел в массиве c++

Есть целочисленный массив, как найти количество разных чисел в нем? Собственно, как функцию сравнения (проверку) правильно задать, вот эту: if ((arr[i]!=arr[i-1])) , чтоб считало нормально.

#include using namespace std; int main(int argc, char** argv) < int N; int count = 0; cout > N; cout > arr[i]; > for (int i = 0; i < N; i += 1) < if ((arr[i] != arr[ i - 1 ])) < count += 1; >> cout

Отслеживать
222k 15 15 золотых знаков 120 120 серебряных знаков 234 234 бронзовых знака
задан 14 мар 2017 в 22:22
Awesome Man Awesome Man
694 3 3 золотых знака 15 15 серебряных знаков 31 31 бронзовый знак

Так а что вы ожидаете получить, сравнивая только соседние элементы в неупорядоченном массиве? То есть просто заданием такой «сравнялки» вы задачу никак не решите. Надо предпринимать более серьезные шаги.

14 мар 2017 в 22:33
я пробовал добавить j, для прохода и сравнения, но не получилось.
14 мар 2017 в 22:34
@Awesome Man Помимо j есть еще k, l, m, n. А что делают переменные a и b?
14 мар 2017 в 22:42
@Awesome Man Никогда еще такого веселого поста по C++ не встречал.:)
14 мар 2017 в 22:44
@VladfromMoscow,ничего, я просто изменял старый код,забыл убрать
14 мар 2017 в 22:45

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

std::unorered_set s; std::copy(std::begin(arr), std::end(arr), std::inserter(s, s.begin())); std::cout  
std::sort(std::begin(arr), std::end(arr)); int count = std::unique(std::begin(arr), std::end(arr)) - std::begin(arr); std::cout  

Если уж совсем "в лоб" решать, то, например, так

int count = 0; for (int i = 0; i < N; ++i) < int j; for (j = i + 1; j < N && arr[j] != arr[i]; ++j); count += j == N; >std::cout  

Это, конечно, неинтересное решение, но зато цикл for с пустым телом удалось применить 🙂

int N; . int arr[N]; 

в С++ не допускается.

Отслеживать
ответ дан 14 мар 2017 в 22:25
AnT stands with Russia AnT stands with Russia
69.4k 3 3 золотых знака 65 65 серебряных знаков 140 140 бронзовых знаков

можете написать через цикл,или иначе,попроще. Я просто, новичек, мне ваш метод пока не доступен.Спасибо!

14 мар 2017 в 22:37

int arr[N]; ,нас так учили. count += j == N; ,что ето означает? к count плюсуется j, и приравнивается к N?

15 мар 2017 в 14:06

Раз речь пошла о циклах, то я вам покажу, как надо писать циклы!:)

#include int main() < int a[] = < 0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0 >; const size_t N = sizeof(a) / sizeof(*a); size_t count = 0; for (size_t i = 0; i < N; i++) < size_t j = 0; while (j < i && a[j] != a[i]) ++j; count += j == i; >std::cout

Или более содержательная программа

#include #include #include int main() < const size_t N = 20; int a[N]; std::srand((unsigned int)std::time(nullptr)); for ( int &x : a ) x = std::rand() % N; for (int x : a) std::cout std::cout

Вывод программы на консоль может выглядеть, к примеру, следующим образом

10 17 12 15 5 1 17 19 0 6 13 5 4 13 6 4 18 10 5 11 There are 13 unique elements 

�� Как найти количество отрицательных чисел в массиве Python? ��

В этом примере мы определяем функцию count_negative_numbers, которая получает массив в качестве параметра и итерируется по каждому элементу. Если элемент меньше нуля, мы увеличиваем счетчик на единицу. В конце возвращаем значение счетчика. Затем мы создаем массив my_array со значениями [1, -2, 3, -4, 5, -6], вызываем функцию count_negative_numbers с этим массивом и выводим результат с помощью команды print. Ожидаемый вывод: Количество отрицательных чисел в массиве: 3

Детальный ответ

Как найти количество отрицательных чисел в массиве Python?

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

Шаг 1: Инициализация массива

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

 numbers = [5, -2, 10, -8, 7, -3, 0, 1, -6] 

Массив numbers содержит различные числа, включая отрицательные числа как, например, -2, -8, -3 и -6.

Шаг 2: Подсчет отрицательных чисел

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

 count = 0 for num in numbers: if num < 0: count += 1 

В данном примере мы создаем переменную count и инициализируем ее нулем. Затем мы используем цикл for , чтобы пройти по каждому элементу массива numbers . Если текущий элемент меньше нуля, мы увеличиваем значение count на единицу. Таким образом, каждый раз, когда мы найдем отрицательное число, значение count увеличится.

Шаг 3: Вывод результатов

Наконец, чтобы узнать количество отрицательных чисел в массиве, мы можем просто вывести значение переменной count . Вот как это можно сделать:

 print(f"Количество отрицательных чисел: ") 

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

Полный код

Вот полный код, объединяющий все шаги, которые мы рассмотрели выше:

 numbers = [5, -2, 10, -8, 7, -3, 0, 1, -6] count = 0 for num in numbers: if num < 0: count += 1 print(f"Количество отрицательных чисел: ") 

Заключение

Теперь вы знаете, как найти количество отрицательных чисел в массиве с помощью Python. Вы использовали цикл for, чтобы перебрать каждый элемент массива и проверить, является ли он отрицательным числом. Затем вы использовали переменную, чтобы подсчитать количество отрицательных чисел и вывели результат. Не бойтесь экспериментировать с этим кодом и изменять массив чисел, чтобы получать различные результаты. Удачи вам в изучении программирования!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *