0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 43
1

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

29.09.2016, 10:06. Показов 2359. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив из N элементов. Определить количество четных чисел на отрезке, заключенном между максимальным и минимальным элементами массива.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2016, 10:06
Ответы с готовыми решениями:

Произведение элементов массива, расположенных между максимальным и минимальным элементами
Добрый день! Вроде бы правильно написал, но упорно выводит 1. Что не так, подскажите? int sum =...

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

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

Обнулить элементы массива, расположенные между его минимальным и максимальным элементами
Дан массив размера N. Обнулить элементы массива, расположенные между его минимальным и максимальным...

7
26 / 27 / 21
Регистрация: 17.05.2016
Сообщений: 94
29.09.2016, 10:17 2
Покажите ваши наработки для начала, пусть даже они будут небольшие.
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
29.09.2016, 10:44 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            int[] array = { 4, 7, 2, 0 };
            int[] index = { 1, 2, 3, 4 };
            int i1 = 0;
            int i2 = 0;
            int num = 0;
            int m = array.Length;
            int[] arr = new int[m];
            Array.Copy(array, arr, m);
            Array.Sort(arr, index);
            if (index[0] > index[m - 1])
            {
                i1 = index[m - 1];
                i2 = index[0];
            }
            else
            {
                i1 = index[0];
                i2 = index[m - 1];
            };
            for (int i = i1 + 1; i < i2; i++)
                if (array[i] % 2 == 0) num = num + 1;
            Console.WriteLine("Количество четных элементов = {0}",num);
            Console.ReadKey();
0
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 43
04.10.2016, 13:38  [ТС] 4
Не работает. Все завист просто от 21 строки. Получается, что код выше бесполезен. Но я попробую, что-нибудь сделать
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
04.10.2016, 14:39 5
qeerty, что именно у вас не работает. Для приведенного примера получаем 1 элемент, что вроде как правильно?
Миниатюры
Определить количество четных чисел на отрезке между максимальным и минимальным элементами массива  
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,601
04.10.2016, 15:25 6
Лучший ответ Сообщение было отмечено qeerty как решение

Решение

в более общем виде
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
           int m = 7;
            int[] array = new int[m];
            int[] index = new int[m];
            int[] arr = new int[m];
            int i1 = 0;
            int i2 = 0;
            int num = 0;
            Random rnd = new Random();
            Console.WriteLine("Заданный массив");
            for (int i = 0; i < m; i++)
            {
               array[i] = rnd.Next(0, 20);
               index[i] = i;
               Console.Write(array[i].ToString() + "\t ");
            }
            Console.WriteLine();
            Console.WriteLine("Max = {0}, Min = {1}", array.Max(), array.Min());
            Array.Copy(array, arr, m);
            Array.Sort(arr, index);
            if (index[0] > index[m - 1])
            {
                i1 = index[m - 1];
                i2 = index[0];
            }
            else
            {
                i1 = index[0];
                i2 = index[m - 1];
            };
            for (int i = i1 + 1; i < i2; i++)
                if (array[i] % 2 == 0) num = num + 1;
            Console.WriteLine("Количество четных элементов = {0}",num);
            Console.ReadKey();
1
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 43
05.10.2016, 10:19  [ТС] 7
Спасиб. Теперь стало более понятно.
0
5 / 5 / 4
Регистрация: 15.12.2013
Сообщений: 34
05.10.2016, 13:13 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
 
        static void Main(string[] args)
        {
            int[] array = new int[10];
            Random rand = new Random();
            for (int i = 0; i < array.Length; i++ ) // заполняем массив
                array[i] = rand.Next(0, 100);
            Console.WriteLine(String.Join(", ", array)); // выводим на экран для удобности
 
            // переменные для хранения мин и макс значений с их индексами
            int minIndex = 0;
            int minVal = array[0];
            int maxIndex = 0;
            int maxVal = array[0];
            for (int i = 0; i < array.Length; i++) // ищем мин и макс
            {
                if (array[i] > maxVal) { maxVal = array[i]; maxIndex = i; }
                if (array[i] < minVal) { minVal = array[i]; minIndex = i; }
            }
            Console.WriteLine("Мин. значение: {0}, макс. значение: {1}", minVal, maxVal);
 
            if (minIndex > maxIndex) // проверяем расположение индексов мин и макс элемента
            {                        // для случаев, когда мин элемент правее макс элемента ,             
                int temp = minIndex; // чтобы условие цикла ниже имело смысл
                minIndex = maxIndex;
                maxIndex = temp;
            }
            int counter = 0; 
            for (int i = ++minIndex; i < maxIndex; i++) // считаем кол-во четных
                if (array[i] % 2 == 0) counter++;
 
            Console.WriteLine("Кол-во четных элементов: {0}.", counter);
            Console.ReadLine();
        }
0
05.10.2016, 13:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2016, 13:13
Помогаю со студенческими работами здесь

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

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

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

Произведение элементов двумерного массива, расположенных между максимальным и минимальным элементами
Произведение элементов двумерного массива, расположенных между максимальным и минимальным...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru