Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
6 / 3 / 3
Регистрация: 27.04.2020
Сообщений: 42

Найти минимальные элементы в массиве

03.05.2020, 18:09. Показов 3915. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код, который содержит три массива - номера месяцев, доходы, расходы. Доходы минус расходы записываются в четвертый массив Прибыль. Как найти три месяца, в которых получена минимальная прибыль? Если есть месяцы, в которых худшая прибыль совпала - вывести их все. Причем вывести нужно номера месяцев. Перебрал все, что можно - не могу понять как. Максимум, что получилось - отсортировать полученные значения при помощи Array.Sort() и вывести прибыли за три худших месяца. А как индексы вывести - не понимаю.
Код:
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
using System;
 
namespace HomeWork_4._1._1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] incame = new int[12];
            int[] consumption = new int[12];
            int[] profit = new int[12];
            Random r = new Random();
            int month1 = 0;
            int i = 0;
            int profitmonth = 0;
            Console.WriteLine($"{"Месяцы",10} {"Доходы, тыс.руб",20} {"Расходы, тыс. руб",20} {"Прибыль, тыс.руб",20}");
            while (i<12)
            {
                month1++;
                incame[i] = r.Next(0, 10) * 10000;
                consumption[i] = r.Next(0, 10) * 10000;
                profit[i] = incame[i] - consumption[i];
                Console.WriteLine($"{month1, 10} {incame[i], 20} {consumption[i], 20} {profit[i],20}");
                if (profit[i] > 0)
                { 
                    profitmonth++; 
                }
                Array.Sort(profit);
                i++;
            }
            Console.WriteLine($"Месяцев с положительной прибылью: {profitmonth}");
            Console.WriteLine($"Месяцы с минимальной прибылью : {profit[0]}, {profit[1]} {profit[2]} ");
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2020, 18:09
Ответы с готовыми решениями:

В массиве заменить все минимальные элементы на противоположные
Дана последовательность из n действительных чисел.. Заменить все минимальные элементы на противоположные. Кто может,помогите...

в двухмерном массиве найти минимальные числа
в двухмерном массиве найти минимальные числа

Найти минимальные элементы в массивах
Даны целочисленные массивы X и Y с разным количеством элементов. Найти минимальные элементы этих массивах среди элементов, имеющих четный...

6
 Аватар для ShmelVG
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
03.05.2020, 18:38
lions1, используйте Dictionary<int, int>
1
6 / 3 / 3
Регистрация: 27.04.2020
Сообщений: 42
04.05.2020, 14:07  [ТС]
Цитата Сообщение от ShmelVG Посмотреть сообщение
lions1, используйте Dictionary<int, int>
Сколько посмотрел сайтов - не особо понял, как использовать. Можете отправить ссылку, где разобран этот оператор?
0
 Аватар для zhunshun
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,076
04.05.2020, 14:47
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
class Program {
        static void Main(string[] args) {
            int[] incame = new int[12];
            int[] consumption = new int[12];
            Dictionary<int,int> profit = new Dictionary<int, int>();
            Random r = new Random();
            int month1 = 0;
            int i = 0;
            int profitmonth = 0;
            Console.WriteLine($"{"Месяцы",10} {"Доходы, тыс.руб",20} {"Расходы, тыс. руб",20} {"Прибыль, тыс.руб",20}");
            while (i < 12) {
                month1++;
                incame[i] = r.Next(0, 10) * 10000;
                consumption[i] = r.Next(0, 10) * 10000;
                profit.Add(i, incame[i] - consumption[i]);
                Console.WriteLine($"{month1,10} {incame[i],20} {consumption[i],20} {profit[i],20}");
                if (profit[i] > 0) {
                    profitmonth++;
                }
                i++;
            }
            Console.WriteLine($"Месяцев с положительной прибылью: {profitmonth}");
            Dictionary<int, int> pr = profit.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
            int j = 0;
            foreach (var item in pr) {
                Console.WriteLine(value: $"Месяцы с минимальной прибылью : {item.Key+1}");
                if (j > 1)
                    break;
                j++;
            }
            Console.ReadKey();
        }
    }
0
 Аватар для Remmor
71 / 71 / 23
Регистрация: 02.02.2012
Сообщений: 309
04.05.2020, 15:47
Цитата Сообщение от lions1 Посмотреть сообщение
Есть код, который содержит три массива - номера месяцев, доходы, расходы. Доходы минус расходы записываются в четвертый массив Прибыль. Как найти три месяца, в которых получена минимальная прибыль? Если есть месяцы, в которых худшая прибыль совпала - вывести их все. Причем вывести нужно номера месяцев. Перебрал все, что можно - не могу понять как. Максимум, что получилось - отсортировать полученные значения при помощи Array.Sort() и вывести прибыли за три худших месяца. А как индексы вывести - не понимаю.
Вы знаете, с учетом того, что Вы используете объектно-ориетированный язык, сама задача просит реализации отдельного класса - Отчетный месяц. В нем свойства номера месяцев, доходы, расходы и прибыль определенная как разница второго и третьего параметра. В этом классе реализовать интерфейс сортировки. Собственно на этом все. Дальше данные можно интерпритировать как хочется. Зачем Вам имеющийся код?
0
6 / 3 / 3
Регистрация: 27.04.2020
Сообщений: 42
05.05.2020, 00:51  [ТС]
Цитата Сообщение от Remmor Посмотреть сообщение
Вы знаете, с учетом того, что Вы используете объектно-ориетированный язык, сама задача просит реализации отдельного класса - Отчетный месяц. В нем свойства номера месяцев, доходы, расходы и прибыль определенная как разница второго и третьего параметра. В этом классе реализовать интерфейс сортировки. Собственно на этом все. Дальше данные можно интерпритировать как хочется. Зачем Вам имеющийся код?
Имеющийся код - мой код)))) И задание было дано после прохождения только циклов и массивов. Поэтому ищу решение.

Добавлено через 3 минуты
Цитата Сообщение от zhunshun Посмотреть сообщение

class Program {
        static void Main(string[] args) {
            int[] incame = new int[12];
            int[] consumption = new int[12];
            Dictionary<int,int> profit = new Dictionary<int, int>();
            Random r = new Random();
            int month1 = 0;
            int i = 0;
            int profitmonth = 0;
            Console.WriteLine($"{"Месяцы",10} {"Доходы, тыс.руб",20} {"Расходы, тыс. руб",20} {"Прибыль, тыс.руб",20}");
            while (i < 12) {
                month1++;
                incame[i] = r.Next(0, 10) * 10000;
                consumption[i] = r.Next(0, 10) * 10000;
                profit.Add(i, incame[i] - consumption[i]);
                Console.WriteLine($"{month1,10} {incame[i],20} {consumption[i],20} {profit[i],20}");
                if (profit[i] > 0) {
                    profitmonth++;
                }
                i++;
            }
            Console.WriteLine($"Месяцев с положительной прибылью: {profitmonth}");
            Dictionary<int, int> pr = profit.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
            int j = 0;
            foreach (var item in pr) {
                Console.WriteLine(value: $"Месяцы с минимальной прибылью : {item.Key+1}");
                if (j > 1)
                    break;
                j++;
            }
            Console.ReadKey();
        }
    }
Этот код выдает 3 месяца с минимальной прибылью, но бывает такой случай, что на третьем месте по минимальной прибыли могут быть два месяца - он выдает только один. Как сделать так, чтобы он выдал все?
0
 Аватар для zhunshun
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,076
05.05.2020, 09:30
убрать
C#
1
2
3
4
int j = 0;
if (j > 1)
                    break;
                j++;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2020, 09:30
Помогаю со студенческими работами здесь

Найти минимальные элементы столбцов матрицы
Найти минимальные элементы столбцов матрицы (MxN) и вывести их c#

Найти все минимальные значения и поменять их на первый элемент в одномерном массиве
Дали задание по с# надо сделать форму с одномерным массивом и чтоб все минимальные значения поменялись местами с первым элементом, чет не...

Найти в массиве минимальные элементы.
Здравствуйте! Прошу помочь с такой задачкой: В действительном массиве максимальной размерностью 7*7 найти в нечетных столбцах минимальные...

Найти в двумерном массиве минимальные элементы и заменить их нулями
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int main() { srand(time(NULL)); ...

В массиве найти и вывести на печать минимальные и максимальные элементы
1. Дан массив из 20 чисел. В массиве найти и вывести на печать минимальные и максимальные элементы.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru