Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/86: Рейтинг темы: голосов - 86, средняя оценка - 4.66
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730

Поменять местами максимальный и минимальный элемент массива

10.10.2011, 13:53. Показов 16392. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сформировать массив 20 целых случайных чисел в диапазоне от минус 30 до 30.
* Напечатать его. Поменять местами максимальный и минимальный элементы массива.
* Напечатать новый массив.
Вот я написал частями, а как произвести замену между максимальным и минимальным элементом массива ?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
System.Random random = new System.Random();
            int[] array = System.Linq.Enumerable.Repeat(1, 40).Select(x => random.Next(-40, 40)).ToArray();
            System.Console.WriteLine("Массив: ");
            System.Array.ForEach(array, x => { System.Console.Write(x + " "); });
            int posMax = System.Array.IndexOf(array, array.Max());
            int posMin = System.Array.LastIndexOf(array, array.Min());
            if (posMin > posMax)
                posMin = System.Array.IndexOf(array, array.Min());
            if (posMin > posMax)
            {
                int b = posMin;
                posMin = posMax;
                posMax = b;
            }
            int p = 1;
            if (posMax - posMin > 0)
            {
                for (int i = posMin + 1; i < posMax; i++)
                    p *= array[i];
            }
            else
                System.Console.WriteLine("\nМеждуй максимальным и минимальным элементами ничего нет");
            System.Console.ReadKey(true);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2011, 13:53
Ответы с готовыми решениями:

Поменять местами максимальный и минимальный элемент массива
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { ...

Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального
Задача Поменять местами максимальный элемент массива и минимальный элемент части массива, расположенной после максимального. Массив...

Массив: поменять местами первый минимальный с первым элементом массива, а максимальный элемент - с последним
первый минимальный с первым элементом массива поменять местами ,а максимальный элемент с последним элементом массива. вот как тут делать ?...

12
 Аватар для Ereona
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
10.10.2011, 14:01
C#
1
2
3
                int temp = array[posMin];
                array[posMin] = array[posMax];
                array[posMax] = temp;
1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
10.10.2011, 14:05  [ТС]
И где это менять ? в какой строке ?
0
 Аватар для Ereona
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
10.10.2011, 14:11
Мне это тоже интересно. Вроде поиск индексов осуществляется у тебя здесь:
C#
1
2
            int posMax = System.Array.IndexOf(array, array.Max());
            int posMin = System.Array.LastIndexOf(array, array.Min());
То есть я поменяла бы после этих строк. Но потом зачем-то с индексами еще что-то делается:
C#
1
2
3
4
5
6
7
8
            if (posMin > posMax)
                posMin = System.Array.IndexOf(array, array.Min());
            if (posMin > posMax)
            {
                int b = posMin;
                posMin = posMax;
                posMax = b;
            }
Не знаю, какому условию задачи соответствует первый if, может, надо менять после него. А второй if на обмен не влияет, тут почему-то меняются местами индексы (и зачем? О_о).
1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
10.10.2011, 15:07  [ТС]
Лучше заново написать программу, а то тут геморой полный, сейчас напишу и скину код...

Добавлено через 17 минут
Что интересно можно написать, там где if ( Min < Max ), чтоб они поменялись местами ?
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;
using System.Linq;
namespace Solution
{
    class Order        
    {
        static void Main()
        {
            int[] iArray = new int[21];
            Random rnd = new Random();
            Console.WriteLine("\t\t\t      Оригинальный массив\n");
            for (int i = 1; i < 21; i++)
            {
                iArray[i] = rnd.Next(-30, 30);
                Console.Write("\t{0,3}\t", iArray[i]);
                int Min = iArray.Min();
                int Max = iArray.Max();
                if (Min < Max)
                {
                    
                }
            }
            Console.ReadKey();
        }
    }
}
Добавлено через 19 секунд
Что интересно можно написать, там где if ( Min < Max ), чтоб они поменялись местами ?
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;
using System.Linq;
namespace Solution
{
    class Order        
    {
        static void Main()
        {
            int[] iArray = new int[21];
            Random rnd = new Random();
            Console.WriteLine("\t\t\t      Оригинальный массив\n");
            for (int i = 1; i < 21; i++)
            {
                iArray[i] = rnd.Next(-30, 30);
                Console.Write("\t{0,3}\t", iArray[i]);
                int Min = iArray.Min();
                int Max = iArray.Max();
                if (Min < Max)
                {
                    
                }
            }
            Console.ReadKey();
        }
    }
}
Добавлено через 43 секунды
Прошу прощения за написания кода 2 раза подряд, компьютер вирусный ((
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
10.10.2011, 15:11
Не надо мудрить.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int[] iArray = new int[20];
int min = 0;
int max = 0;
 
Random rnd = new Random();
Console.WriteLine("\t\t\t      Оригинальный массив\n");
for (int i = 1; i < iArray.Length; i++) {
    iArray[i] = rnd.Next(-30, 30);
    Console.Write("\t{0,3}\t", iArray[i]);
    if (iArray[min] > iArray[i])
        min = i;
    if (iArray[max] < iArray[i])
        max = i;
}
int tmp = iArray[min];
iArray[min] = iArray[max];
iArray[max] = tmp;
Console.ReadKey();
2
 Аватар для Ereona
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
10.10.2011, 15:12
Надо найти индексы минимального и максимального элементов (как и было сделано в первом варианте кода), а потом поменять значения элементов в массиве по найденным индексам.
C#
1
2
3
4
5
            int posMax = System.Array.IndexOf(array, array.Max());
            int posMin = System.Array.IndexOf(array, array.Min());
                int temp = array[posMin];
                array[posMin] = array[posMax];
                array[posMax] = temp;
1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
10.10.2011, 15:21  [ТС]
kolorotur, В программе нужно 1 ) создать массивы нормальные без замены 2) создать еще один массив на основе 1-ого ( тоесть те же числа ) только поменять значения максимального и минимального
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
10.10.2011, 15:23
Ну тогда так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int[] iArray = new int[20];
int[] iArray2 = new int[20];
int min = 0;
int max = 0;
 
Random rnd = new Random();
Console.WriteLine("\t\t\t      Оригинальный массив\n");
for (int i = 1; i < iArray.Length; i++) {
    iArray[i] = rnd.Next(-30, 30);
    iArray2[i] = iArray[i];
 
    Console.Write("\t{0,3}\t", iArray[i]);
    if (iArray[min] > iArray[i])
        min = i;
    if (iArray[max] < iArray[i])
        max = i;
}
int tmp = iArray2[min];
iArray2[min] = iArray2[max];
iArray2[max] = tmp;
Console.ReadKey();
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
10.10.2011, 16:00  [ТС]
kolorotur, И где тут вывод 2-ого массива ? У меня только 1 выводится...
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
10.10.2011, 17:00
Цитата Сообщение от irineyxxx Посмотреть сообщение
kolorotur, И где тут вывод 2-ого массива ? У меня только 1 выводится...
А самому никак не вывести второй массив ?Вам самое главное принцип показали.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
10.10.2011, 17:33
Цитата Сообщение от irineyxxx Посмотреть сообщение
И где тут вывод 2-ого массива ? У меня только 1 выводится...
Да вы издеваетесь чтоли?
Ну добавьте строчку для вывода массива:
C#
1
iArray2.ForEach(i => Console.Write("{0} ", i));
0
0 / 0 / 0
Регистрация: 30.03.2017
Сообщений: 2
30.03.2017, 10:37
а виде методов процедур нету
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2017, 10:37
Помогаю со студенческими работами здесь

Поменять местами минимальный и максимальный элемент матрицы
Нужно поменять местами максимальный и минимальный элементы двумерного массива. Нашел примеры подобной операции с одномерным массивом, пока...

Поменять местами максимальный и минимальный элемент в 1й и 3й строке
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Поменять местами максимальный и минимальный элемент каждой строки матрицы
помогите пожалуйста написать программу)

Поменять местами строки в матрице, содержащие минимальный и максимальный элемент
дана матрица размера 6x9 поменять местами строки содержащие минимальный и максимальный элемент с#

Поменять местами максимальный по модулю отрицательный элемент и минимальный положительный
Поменять местами максимальный по модулю отрицательный элемент и минимальный положительный. Тестовый массив 4 5 6 7 12 -3 4 -5 -7 2...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru