Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 19

Произведение элементов одномерного массива

22.05.2017, 23:37. Показов 3089. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, помогите разобраться с вопросом
Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.

// Код написала, решила проверить код, при умножении на все элементы между мин и макс, оказалось, что код умножает еще и на минимальное число, судя по условию задачи так все таки не должно быть, как исправить?

Извините, если вопрос тупой и это не является ошибкой)

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
      public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //Заполняем матрицу случайными числами
            // Очищаем элемент управления
            listBox1.Items.Clear();
            // Инициализируем класс случайных чисел
            Random rand = new Random();
            // Генерируем и выводим 15 элементов 
            for (int i = 0; i < 15; i++)
            {
                a[i] = rand.Next(-50, 50);
                listBox1.Items.Add("a[" + i.ToString() +"] = " + a[i].ToString());
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            //Произведение элементов массива
            //Находим мин и макс значение
            int max_ = a[0], min_ = a[0];
            int c = 0, b = 0;
            for (int i = 0; i < 15; i++)
            {
                if (a[i] > max_)
                {
                    max_ = a[i];
                    b = i;
                }
                if (a[i] < min_)
                {
                    min_ = a[i];
                    c = i;
                }
            }
            //произведение между min и max
            int p = 1;
 
            if (c < b)
            {
                for (int i = c; i < b; i++)
                {
                    p = p * a[i];
                    textBox2.Text = (p.ToString());
                }
            }
            else
            {
                for (int i = b; i < c; i++)
                {
                    p = p * a[i];   
 
                    textBox2.Text = (p.ToString());
                }
            }
        
        }
       
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2017, 23:37
Ответы с готовыми решениями:

Вычислить произведение элементов одномерного массива
В одномерном массиве, состоящем из 15 вещественных элементов (значения элементов массива задать случайными числами из интервала ) вычислить...

Сложение элементов одномерного массива
Приветствую всех) У меня возникли некие затруднения в ходе сложения элементов приведенного ниже одномерного массива Трабл состоит в...

Сумма элементов одномерного массива
нужно найти сумму элементов одномерного массива в форме public static void Array(int array) { Random r = new...

8
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
23.05.2017, 11:27
Строка 45. По условию i > c
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
23.05.2017, 22:09
а что если таких элементов несколько, между какими из них считать? например 5 -5 3 2 1 -1
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
24.05.2017, 01:25
Diamante Не нужно себя загонять в угол. Этот случай в условиях не оговорен, т.е. можно между любым наименьшим и любым наибольшим.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 19
24.05.2017, 09:33  [ТС]
к сожалению проблема актуальна
условие изменила на i > c, но проблема осталась, все равно программа умножает на минимальное число, более того в некоторых случаях вообще не считает
C#
1
2
3
4
5
6
7
8
 if (c < b)
            {
                for (int i = c; i >с; i++)
                {
                    p = p * a[i];
                    textBox2.Text = (p.ToString());
                }
            }
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
24.05.2017, 13:53
Лучший ответ Сообщение было отмечено Ellegrik как решение

Решение

Попробую проверить полностью Ваш код.
Кстати, обратите внимание на такую операцию
Вместо, например, n = n * k можно n *= k; или n = n + k можно n += k; и т.д.

Добавлено через 3 часа 32 минуты
Подправил, все работает

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
Forms Code
{
       private void button5_Click(object sender, EventArgs e)
       {
        //Произведение элементов массива           
               int max_ = a[0], min_ = a[0];
               int c = 0, b = 0;
               for (int i = 0; i < 15; i++)
               {
                   if (a[i] > max_) // >= max_ если в конце массва, решения нет
                   {
                       max_ = a[i];
                       b = i;
                   }
                   if (a[i] < min_)  // <= min_  если в начале массва, решения нет
                   {
                       min_ = a[i];
                       c = i;
                   }
               }
               //произведение между min и max
               int p = 1;
 
               if (c < b)
               {
                   for (int i = c+1; i < b; i++)   // Изменение
                   {
                       p = p * a[i];
                       textBox2.Text = (p.ToString());
                   }
               }
               else
               {
                   for (int i = b+1; i < c; i++)  // Изменение
                   {
                       p = p * a[i];
 
                       textBox2.Text = (p.ToString());
                   }
               }
       }
}
1
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 19
25.05.2017, 11:10  [ТС]
Спасибо, все заработало)
0
0 / 0 / 0
Регистрация: 20.02.2021
Сообщений: 17
23.03.2021, 14:29
Цитата Сообщение от zna926 Посмотреть сообщение
Попробую проверить полностью Ваш код.
Кстати, обратите внимание на такую операцию
Вместо, например, n = n * k можно n *= k; или n = n + k можно n += k; и т.д.

Добавлено через 3 часа 32 минуты
Подправил, все работает

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
Forms Code
{
       private void button5_Click(object sender, EventArgs e)
       {
        //Произведение элементов массива           
               int max_ = a[0], min_ = a[0];
               int c = 0, b = 0;
               for (int i = 0; i < 15; i++)
               {
                   if (a[i] > max_) // >= max_ если в конце массва, решения нет
                   {
                       max_ = a[i];
                       b = i;
                   }
                   if (a[i] < min_)  // <= min_  если в начале массва, решения нет
                   {
                       min_ = a[i];
                       c = i;
                   }
               }
               //произведение между min и max
               int p = 1;
 
               if (c < b)
               {
                   for (int i = c+1; i < b; i++)   // Изменение
                   {
                       p = p * a[i];
                       textBox2.Text = (p.ToString());
                   }
               }
               else
               {
                   for (int i = b+1; i < c; i++)  // Изменение
                   {
                       p = p * a[i];
 
                       textBox2.Text = (p.ToString());
                   }
               }
       }
}
ошибка, пишет что "a" нет в данном контексте.Что делать?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
23.03.2021, 20:54
alex452431, объявить глобальной переменной
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2021, 20:54
Помогаю со студенческими работами здесь

Сумма элементов одномерного массива и его сжатие
Помогите плиз. C# Windows Forms В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму элементов массива с...

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

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

Описать функцию Max, находящую максимальное значение из элементов одномерного массива
2) Описать функцию Max, находящую максимальное значение из элементов одномерного массива х размера n. С помощью этой функции найти...

Найти наименьшее среди тех элементов матрицы Х, которые не являются элементами одномерного массива Y
Здравствуйте. Нужна помощь. Скажите, как решить этот код с помощью методов(функций) а не просто циклами и условиями. Найти наименьшее...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru