Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
1

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

13.12.2016, 16:26. Показов 3143. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, мне нужна ваша помощь с заданием, который я не могу составить. Вот текст.
"Дан массив вещественных чисел. Элементы массива
формируются случайным образом. Размерность массива N=20. Пользователь
должен указать, что необходимо найти:
- произведение и количество положительных элементов;
- произведение и количество отрицательных элементов.
При выводе количества положительных (отрицательных) элементов
указать в скобках процент этих элементов от общего числа элементов в
массиве. Например, в массиве всего 6 элементов, среди них 3 положительных
числа, тогда в ответе запишется: количество положительных элементов равно
145 (50%)."
Прощу вас разобраться
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2016, 16:26
Ответы с готовыми решениями:

Найти количество отрицательных и произведение положительных элементов массива
Создать массив с элементами a_{k,n}=nf(k)+sin(k)g(n), f(k)=\left|\sin \frac{k}{3.12}+\cos k^2...

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

Найти произведение всех положительных чисел массива, и количество отрицательных чисел
Помогите, пожалуйста, с заданием по с++. Найти произведение всех положительных чисел массива {a...

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

16
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 16:38 2
C#
1
2
3
4
5
6
7
8
9
static void Main()
{
    var random = new Random();
    double[] array = Enumerable.Range(0, 20).Select(i => (random.NextDouble()-0.5)*5).ToArray();
    Predicate<double> selector = Console.ReadLine() == "+" ? (Predicate<double>)(x => x > 0) : x => x < 0;
    int count = array.Where(x => selector(x)).Count();
    double mult = array.Where(x => selector(x)).Aggregate((a, b) => a * b);
    Console.WriteLine($"Произведение={mult}, количество={count}({(double)count / array.Length:P})");
}
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 16:42  [ТС] 3
TopLayer, программа запустилась, но там было просто пусто. А после нажатия на любую из кнопок она закрывается и ничего не показывает
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 16:45 4
ctrl+F5
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 16:46  [ТС] 5
TopLayer, а можно как то сделать, чтоб ее так не запускать?
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 16:47 6
Добавить в конец метода Main
C#
1
Console.ReadLine();
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 16:52  [ТС] 7
TopLayer, Я вас понял, но тут как бы смешно это не звучало. Когда я открываю через ctrl + F5, то он мне выдает положительные элементы и их произведение. А если как вы сказали добавить Console.RedLine(); то выходит отрицательные элемент

Добавлено через 55 секунд
TopLayer, хотя даже не так, выходят совсем другие цифры...
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
13.12.2016, 16:52 8
Jellpas, это магия рандома
C#
1
var random = new Random();
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 16:54  [ТС] 9
EveKS, оу я вас понял.

Добавлено через 1 минуту
EveKS, TopLayer, хорошо, тогда вы мне можете объяснить как сделать так, чтоб он мог считать как и отрицательные элементы и положительные?
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 16:57 10
Jellpas, введёте "+" - выведет положительные, иначе отрицательные
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 16:58  [ТС] 11
EveKS, TopLayer, чтоб он мог подчитывать их одновременно. Вот это я хотел сказать
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 16:59 12
Цитата Сообщение от Jellpas Посмотреть сообщение
хотя даже не так, выходят совсем другие цифры
массив инициализируется случайными значениями
0
10 / 10 / 5
Регистрация: 28.09.2015
Сообщений: 139
13.12.2016, 17:00 13
Вот мои потуги
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
 
delegate bool IsNum(int x);
 
class Program
{
    static void Main()
    {
        int n = 20;
        int[] arr = new int[n];
        Random rand = new Random();
 
        for (int i = 0; i < n; i++)
        {
            arr[i] = rand.Next(-100, 100);
        }
 
        int mult = Mult(arr);
        int countPos = Count(arr, x => x > 0);
        int countNeg = Count(arr, x => x < 0);
 
        Console.WriteLine($"В массиве всего {n} элементов, их произведение = {mult}, среди них {countPos} ({(double)countPos / n:P}) позитивных и {countNeg} ({(double)countNeg / n:P}) негативных элементов.");
    }
 
    static int Count(int[] numbers, IsNum func)
    {
        int count = 0;
        foreach (int n in numbers)
        {
            if (func(n))
                count++;
        }
        return count;
    }
 
    static int Mult(int[] numbers)
    {
        int mult = 1;
        foreach (int n in numbers)
        {
            mult *= n;
        }
        return mult;
    }
}
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 17:02  [ТС] 14
Glitch,
Цитата Сообщение от Glitch Посмотреть сообщение
static int Count(int[] numbers, IsNum func)
говорит мне, что не удалось найти тип или имя пространства
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
13.12.2016, 17:02 15
Лучший ответ Сообщение было отмечено Jellpas как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void Main()
{
    var random = new Random();
    double[] array = Enumerable.Range(0, 20).Select(i => (random.NextDouble() - 0.5) * 5).ToArray();
    
    Console.WriteLine("Информация о положительных элементах:");
    Predicate<double> selector = x => x > 0;
    int count = array.Where(x => selector(x)).Count();
    double mult = array.Where(x => selector(x)).Aggregate((a, b) => a * b);
    Console.WriteLine($"Произведение={mult}, количество={count}({(double)count / array.Length:P})");
    
    Console.WriteLine();
 
    Console.WriteLine("Информация об отрицательных элементах:");
    selector = x => x < 0;
    count = array.Where(x => selector(x)).Count();
    mult = array.Where(x => selector(x)).Aggregate((a, b) => a * b);
    Console.WriteLine($"Произведение={mult}, количество={count}({(double)count / array.Length:P})");
    
    Console.ReadLine();
}
1
10 / 10 / 5
Регистрация: 28.09.2015
Сообщений: 139
13.12.2016, 17:03 16
Jellpas, полностью код скопируйте, с делегатом
0
3 / 3 / 0
Регистрация: 05.06.2016
Сообщений: 31
13.12.2016, 17:03  [ТС] 17
TopLayer, Как всегда, спасибо, что спасли меня Теперь я понял.
0
13.12.2016, 17:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2016, 17:03
Помогаю со студенческими работами здесь

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

Найти произведение всех положительных чисел массива и подсчитать количество отрицательных
Найти произведение всех положительных чисел массива { a i}, где i=1,2,...,13, и подсчитать...

Найти произведение количества отрицательных элементов и количество положительных элементов массива
Прошу помощи. Задание: Задан одномерный, целочисленный массив A(n), (n&lt;=40).Найти произведение...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru