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

0 / 0 / 0

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

Сообщений: 21

1

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

09.01.2017, 16:18. Показов 11473. Ответов 13


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

Дан одномерный массив A[1..N], содержащий целые числа. Подсчитать количество положительных элементов. Можно пожалуйста с объяснением.



0



UseMuse

155 / 144 / 58

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

Сообщений: 1,247

09.01.2017, 16:30

2

Pandro,

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
25
26
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //одномерный массив A[1..N] 
            int[] A = { 0, 1, 2, 3, -5, -5, -5, 9, 0, 0 };
            //счётчик положительных элементов массива А
            int СчётчикПоложительныхЭлементовМассиваА = 0;
 
            //цикл элементов массива А
            for (int i = 0; i < A.Length; i++)
            {
                //если значение элмента массива А больше нуля, значит увеличиваем счётчик положительных элементов массива А на 1
                if (A[i] > 0) СчётчикПоложительныхЭлементовМассиваА++;
            }
            //вывод на экран
            Console.WriteLine("Кол-во положительных: {0}", СчётчикПоложительныхЭлементовМассиваА);
            //Нажать нежно
            Console.ReadLine();
        }
    }
}



0



Pikemaster

309 / 309 / 215

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

Сообщений: 771

09.01.2017, 16:32

3

Лучший ответ Сообщение было отмечено Pandro как решение

Решение

Pandro,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
class Program
{
    static void Main(string[] args)
    {
        int N = 10, sum = 0; // размер массива и переменная для подсчета количества положительных элементов
        int[] A = new int[N];   // объявление массива и выделение памяти под него
        Random r = new Random();    // объект для генерации случайных чисел
 
        for (int i = 0; i < N; i++)
        {
            A[i] = r.Next(-10, 10);   // инициализируем элементы массива случайными значениями из диапазона [-10, 10)
            Console.Write(A[i] + " ");    //  и выводим их
            if (A[i] > 0)   // если элемент положительный
                sum ++;    // то прибавляем к счетчику 1
        }
 
        Console.WriteLine("n" + sum); // Вывод получившегося количества дабы убедиться в правильности результата и пойти довольным к преподу :)
        Console.ReadKey();  // ожидание нажатия клавиши (пауза)
    }
}

Добавлено через 1 минуту

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

C#
1
int СчётчикПоложительныхЭлементовМассиваА = 0;

препод оценит)



0



155 / 144 / 58

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

Сообщений: 1,247

09.01.2017, 16:33

4

Pikemaster, вроде бы сумма не нужна



0



309 / 309 / 215

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

Сообщений: 771

09.01.2017, 16:35

5

UseMuse, там положительные элементы суммирует, прост назвал так (немного криво)

Добавлено через 37 секунд
А, понял, точно

Добавлено через 26 секунд
Исправил



0



155 / 144 / 58

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

Сообщений: 1,247

09.01.2017, 16:35

6

Pikemaster, зачем значения положительных элементов суммировать?) если в задании написано

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

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



0



aquaMakc

484 / 397 / 68

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

Сообщений: 1,930

09.01.2017, 16:56

7

C#
1
2
int[] A = { 0, 1, 2, 3, -5, -5, -5, 9, 0, 0 };
Console.WriteLine(A.Count(x => x > 0));



0



UseMuse

155 / 144 / 58

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

Сообщений: 1,247

09.01.2017, 17:20

8

aquaMakc, пффф, как-то длинновато

C#
1
2
//потому что программирование - это магия
System.Console.WriteLine(new int []{ 0, 1, 2, 3, -5, -5, -5, 9, 0, 0 }.Count(x => x > 0));



0



0 / 0 / 0

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

Сообщений: 21

09.01.2017, 19:52

 [ТС]

9

Нет, надо чтобы массив был рандомный.



0



Diamante

3458 / 2465 / 1170

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

Сообщений: 8,160

09.01.2017, 20:12

10

C#
1
2
3
4
5
6
        static Random rnd = new Random();
        static void Main(string[] args)
        {
            Console.WriteLine(Enumerable.Range(0, 10).Select(_ => rnd.Next(-10, 11)).Count(x=>x>0));
            Console.ReadKey(true);
        }



0



Pandro

0 / 0 / 0

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

Сообщений: 21

09.01.2017, 20:41

 [ТС]

11

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

C#
1
2
3
4
5
6
        static Random rnd = new Random();
        static void Main(string[] args)
        {
            Console.WriteLine(Enumerable.Range(0, 10).Select(_ => rnd.Next(-10, 11)).Count(x=>x>0));
            Console.ReadKey(true);
        }

А как его вывести на экран, чтобы там всё было понятно? Преподаватель требует, не пойму как всё грамотно сделать.



0



309 / 309 / 215

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

Сообщений: 771

09.01.2017, 21:48

12

Pandro, чтобы всё понятно, ручной ввод, аккуратный вывод и чтоб препод не доколебался — забудь про linq и используй варианты выше. Рано тебе еще linq видеть, а люди больше для себя (и ради «смотри как я могу») твоё задание пишут под linq, а не для препода твоего, а ты видешь код короче и думаешь «круто, всего лишь 2 строчки понять нужно», несмотря на то, что они не выполняют многие функции так как ты хочешь.

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

А как его вывести на экран, чтобы там всё было понятно? Преподаватель требует, не пойму как всё грамотно сделать.

Сейчас начнешь пытаться разворачивать это решение и придёшь к тому, что тебе уже написали.



0



aquaMakc

484 / 397 / 68

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

Сообщений: 1,930

10.01.2017, 09:02

13

UseMuse, вы хочите магию? Их есть у меня:

C#
1
2
3
4
int[] A = new int[10];
Random r = new Random();
A = A.Select((x) =>  x = r.Next(-10, 10)).ToArray();
Console.WriteLine("{0} Count: {1}", String.Join(" ", A), A.Count(x => x > 0));

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

а люди больше для себя (и ради «смотри как я могу») твоё задание пишут под linq, а не для препода твоего

Если честно, лично у меня нет никакого желания за автора решать элементарную задачу, которые мы самостоятельно делали на уроках информатики в школе в дремучих 90-х, когда ни книг, ни интернета не было. Причём на этом форуме из 10 тем 8-9 будут именно такими. Вот и начинается «угар» с решением задания для 6 класса средней школы методами madskilzzz.



0



309 / 309 / 215

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

Сообщений: 771

10.01.2017, 10:23

14

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

Если честно, лично у меня нет никакого желания за автора решать элементарную задачу

Я понимаю такой подход и не считаю его плохим)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

10.01.2017, 10:23

14

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

Просмотров 11к. Обновлено 15 октября 2021

Сгенерировать 20 случайных целых чисел в диапазоне от -5 до 4, записать их в ячейки массива. Посчитать сколько среди них положительных, отрицательных и нулевых значений. Вывести на экран элементы массива и посчитанные количества.

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

Pascal

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


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



0 0 -4 -2 4 0 2 -4 3 0 0 -4 2 2 0 -3 -3 3 -3 -4
Положительных: 6
Отрицательных: 8
Равных нулю: 6

Язык Си


#include
#define N 20

main() {
srand(time(NULL));
int a[N],i,neg,pos,zero;
neg = 0;
pos = 0;
zero = 0;
for (i=0; i< N; i++) {
a[i] = rand() % 10 - 5;
printf("%3d", a[i]);
if (a[i] > 0) pos += 1;
else if (a[i] < 0) neg += 1;
else zero += 1;
}
printf("nПоложительных: %dn", pos);
printf("Отрицательных: %dn", neg);
printf("Равных нулю: %dn", zero);
}



-5 -4 0 -3 1 3 -2 -4 4 -4 2 -5 -1 -4 -3 -1 -4 -5 1 3
Положительных: 6
Отрицательных: 13
Равных нулю: 1

Python

количество положительных элементов массива python (питон)


from random import random
neg = pos = zero = 0
a = []
for i in range(20):
n = int(random() * 10) - 5
a.append(n)
print(n, end=' ')
if n > 0:
pos += 1
elif n < 0:
neg += 1
else:
zero += 1

print("nПоложительных: ", pos)
print("Отрицательных: ", neg)
print("Равных нулю: ", zero)



-4 3 -4 3 -2 3 4 -2 -4 3 -4 -3 0 1 4 -2 2 0 -3 -4
Положительных: 8
Отрицательных: 10
Равных нулю: 2

КуМир


алг положительные элементы
нач
цел N = 20
цел таб a[1:N]
цел pos=0, neg=0, zero=0,i
нц для i от 1 до N
a[i] := int(rand(0,10))-5
вывод a[i], " "
если a[i] > 0 то pos := pos + 1
иначе
если a[i] < 0 то neg := neg + 1
иначе zero := zero + 1
все
все
кц
вывод нс, "Положительных: ", pos
вывод нс, "Отрицательных: ", neg
вывод нс, "Равных нулю: ", zero
кон

Basic-256


N = 20
dim a(N)
pos = 0
neg = 0
zero = 0
for i=0 to N-1
a[i] = int(rand()*10) - 5 # от 4 до -5
print a[i]+ " ";
if a[i] < 0 then
neg = neg + 1
else
if a[i] > 0 then
pos = pos+1
else
zero = zero + 1
endif
endif
next i
print
print "Positive: " + pos
print "Negative: " + neg
print "Zero: " + zero



3 4 2 1 3 -4 0 0 -1 4 4 -1 2 -5 -4 -3 3 2 4 -3
Positive: 11
Negative: 7
Zero: 2

Задачи:

  1. Подсчитать количество и сумму всех положительных чисел массива, а также элементов кратных 3.
  2. Подсчитать количество и сумму всех отрицательных чисел массива, а также элементов кратных 3.
  3. Предусмотреть ввод чисел с клавиатуры (через форму).
  4. Предусмотреть конец последовательности — число 0. Т.е. числа в массиве, идущие после 0, должны игнорироваться.

Поиск положительных элементов с FOREACH

Поиск положительных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

foreach($arr as $v)
{
	if($v > 0)
		$values[] = $v;
}

var_dump($values);

Вычисление суммы положительных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

foreach($arr as $v)
{
	if($v > 0)
		$sum += $v;
}

var_dump($sum);

Поиск положительных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

foreach($arr as $v)
{
	if($v > 0 and $v % 3 == 0)
		$values[] = $v;
}

var_dump($values);

Вычисление суммы положительных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

foreach($arr as $v)
{
	if($v > 0 and $v % 3 == 0)
		$sum += $v;
}

var_dump($sum);

Поиск отрицательных элементов с FOREACH

Поиск отрицательных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

foreach($arr as $v)
{
	if($v < 0)
		$values[] = $v;
}

var_dump($values);

Вычисление суммы отрицательных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

foreach($arr as $v)
{
	if($v < 0)
		$sum += $v;
}

var_dump($sum);

Поиск отрицательных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

foreach($arr as $v)
{
	if($v < 0 and $v % 3 == 0)
		$values[] = $v;
}

var_dump($values);

Вычисление суммы отрицательных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

foreach($arr as $v)
{
	if($v < 0 and $v % 3 == 0)
		$sum += $v;
}

var_dump($sum);

Поиск положительных элементов с FOR

Поиск положительных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] > 0)
		$values[] = $arr[$i];
}

var_dump($values);

Вычисление суммы положительных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] > 0)
		$sum += $arr[$i];
}

var_dump($sum);

Поиск положительных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] > 0 and $arr[$i] % 3 == 0)
		$values[] = $arr[$i];
}

var_dump($values);

Вычисление суммы положительных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] > 0 and $arr[$i] % 3 == 0)
		$sum += $arr[$i];
}

var_dump($sum);

Поиск отрицательных элементов с FOR

Поиск отрицательных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] < 0)
		$values[] = $arr[$i];
}

var_dump($values);

Вычисление суммы отрицательных элементов:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] < 0)
		$sum += $arr[$i];
}

var_dump($sum);

Поиск отрицательных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] < 0 and $arr[$i] % 3 == 0)
		$values[] = $arr[$i];
}

var_dump($values);

Вычисление суммы отрицательных элементов, кратных 3:

<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] < 0 and $arr[$i] % 3 == 0)
		$sum += $arr[$i];
}

var_dump($sum);

Поиск элементов с WHILE

Поиск чисел с while аналогичен поиску с for, только эта строчка:

for($i = 0; $i < count($arr); $i++)

Заменяется на эти:

$i = -1;

while(++$i < count($arr))

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

<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
$i = -1;

while(++$i < count($arr))
{
	if($arr[$i] > 0)
		$values[] = $arr[$i];
}

var_dump($values);

Ввод чисел через форму

Простая форма, отправляемая методом GET, с PHP обработчиком:

<?php
if(isset($_GET['nums']))
{
	$arr = explode(' ', $_GET['nums']);
}
?>
<form>
	<input type="text" name="nums">
	<input type="submit" name="Поиск">
</form>

Введя в эту форму 1 2 35 -34, в переменной $arr мы получим массив [1, 2, 35, -34]. Правда вместо чисел в нём будут строки, но это неважно, поскольку перед сравнением значений PHP всё равно будет приводить их к числам.

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

<?php
if(isset($_GET['nums']))
{
	$arr = explode(' ', $_GET['nums']);
	$sum = 0;

	for($i = 0; $i < count($arr); $i++)
	{
		if($arr[$i] > 0)
			$sum += $arr[$i];
	}

	var_dump($sum);
}
?>
<form>
	<input type="text" name="nums">
	<input type="submit" name="Поиск">
</form>

Конец последовательности

Для реализации конца последовательности нужно в начало цикла foreach добавить следующий код:

if($v == 0)
    break;

Для цикла for код будет выглядеть так:

if($arr[$i] == 0)
    break;

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

<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];

foreach($arr as $v)
{
	if($v == 0)
		break;

	if($v > 0)
		$values[] = $v;
}

var_dump($values); // [2]

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

<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];

for($i = 0; $i < count($arr); $i++)
{
	if($arr[$i] == 0)
		break;

	if($arr[$i] > 0)
		$values[] = $arr[$i];
}

var_dump($values); // [2]

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

Python задачи

Создайте массив из 20 случайных целых чисел от -10 до 10, запишите их в ячейки массива. Подсчитайте, сколько из них положительных, отрицательных и нулевых. Отобразите элементы массива и значения подсчитанных величин. Разбор задачи на python

Алгоритм решения задачи на python

1) Назначить три переменные под счётчики и присвоить им значение равное 0

2) Написать цикл for, который создаёт случайные числа и записывает их в массив, далее сравнивает и записывает +1 в соответствующий счётчик

3) Вывод на экран значения счётчиков и массива

Код для нахождения количества положительных, отрицательных и равных нулю элементов массива

Код для нахождения количества положительных, отрицательных и равных нулю элементов массива

from random import random
mins = 0
zero = 0
plus = 0
a = []
for i in range(20):
n = int(random() * 20) — 10
a.append(n)
print(n, end=’ ‘)
if n > 0:
plus += 1
elif n < 0:
mins += 1
else:
zero += 1

print(«nПоложительных чисел: «, plus)
print(«Отрицательных чисел: «, mins)
print(«Чисел равных нулю: «, zero)

Python задачи
Все задачи на python

Репост статьи

22 декабря 2022 г.

Комментарии могут оставлять только зарегестрированные пользователи!



Комментарии

Ваш комментарий будет первым !

Напиши программу, которая принимает натуральное число n, а затем n чисел от 1 до 100. выведи максимальное из них, которое заканчивается на 1. если такого числа нет, напечатай «нет».

Pascal задача.Даны натуральные числа n, m. Получите сумму m последних цифр числа n.

using System;
 
class Program
{
    static void Main(string[] args)
    {
        int N = 10, sum = 0; // размер массива и переменная для подсчета количества положительных элементов
        int[] A = new int[N];   // объявление массива и выделение памяти под него
        Random r = new Random();    // объект для генерации случайных чисел
 
        for (int i = 0; i < N; i++)
        {
            A[i] = r.Next(-10, 10);   // инициализируем элементы массива случайными значениями из диапазона [-10, 10)
            Console.Write(A[i] + " ");    //  и выводим их
            if (A[i] > 0)   // если элемент положительный
                sum ++;    // то прибавляем к счетчику 1
        }
 
        Console.WriteLine("n" + sum); // Вывод получившегося количества дабы убедиться в правильности результата и пойти довольным к преподу :)
        Console.ReadKey();  // ожидание нажатия клавиши (пауза)
    }
}

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