Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/103: Рейтинг темы: голосов - 103, средняя оценка - 4.67
 Аватар для hierro108
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 28

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

21.08.2012, 15:44. Показов 21792. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

посмотрите, пожалста, последнюю часть кода - вроде все верно, но массив печатается тот же самый.
В поиске тему просматривал, но безрезультатно

Пасиба!

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
class Program
    {
        static void Main(string[] args)
        {
            int[] array = { 5, -9, 20, -30, 45, -100, 56, 88 };
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write("{0}\t", array[i]);
            }
            Console.WriteLine();
 
            int max = 0;
            int ind_max = 0;
            int min = 0;
            int ind_min = 0;
            
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] >= max)
                {
                    max = array[i];
                    ind_max = i;
                }
                if (array[i] <= min)
                {
                    min = array[i];
                    ind_min = i;
                }
            }
            Console.WriteLine();
            Console.WriteLine("Максимальный элемент массива был {0}", max);
            Console.WriteLine("Минимальный элемент массива был {0}", min);
 
            Console.WriteLine();
            
            Console.WriteLine("После замены местами максимальный элемент массива стал {0}", array[ind_min]);
            Console.WriteLine("После замены местами минимальный элемент массива стал {0}", array[ind_max]);
            Console.WriteLine();
 
            int inter = 0;
            
            for (int i = 0; i < array.Length; i++)
            {
                inter = array[ind_max];
                array[ind_max] = array[ind_min];
                array[ind_min] = inter;
                Console.Write("{0}\t", array[i]);
            }
            Console.WriteLine();
            
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2012, 15:44
Ответы с готовыми решениями:

Поменять местами минимальный и максимальный элементы массива
Всем приятного для , прошу вас помочь . Нужно cделать задачу в консольном режиме C# Итак вот условие : Поменять местами минимальный и...

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

Найти минимальный и максимальный элементы массива D и поменять их местами
Помогите Пожалуйста!Такая задача: Найти минимальный и максимальный элементы массива D и поменять их местами Заранее...

10
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
21.08.2012, 15:50
а зачем тебе цикл, чтобы поменять элементы местами? у тебя массив четной длины, вот они и меняются восемь раз туда-сюда, и в результате восстанавливается status quo
1
 Аватар для hierro108
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 28
21.08.2012, 16:18  [ТС]
мне цикл для того, чтобы отобразить измененный массив на консоли
или как-то по-другому можно это сделать?

и еще: если я добавляю еще один элемент, т.е. кол-во элементов становится нечетным, массив все равно выводится тот же самый, без изменений
0
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
21.08.2012, 16:32
Цитата Сообщение от hierro108 Посмотреть сообщение
мне цикл для того, чтобы отобразить измененный массив на консоли
или как-то по-другому можно это сделать?

и еще: если я добавляю еще один элемент, т.е. кол-во элементов становится нечетным, массив все равно выводится тот же самый, без изменений
1)
делать это вне цикла очевидно
C#
1
2
3
4
5
            int inter = array[ind_max];
            array[ind_max] = array[ind_min];
            array[ind_min] = inter;
            for (int i = 0; i < array.Length; i++)
                Console.Write("{0}\t", array[i]);
2) неверно
массив изменился, просто в тот момент когда вы выводите их по одному, таким образом вы выводите РАЗНЫЕ массивы, т.е. при выводе _НЕЧЕТНОГО_ элемента вы пишете элемент из "измененного" массива в котором элементы поменялись местами, при выводе _ЧЕТНОГО_ элемента вы выводите элемент из массива измененного обратно (такой же как начальный) массив

получите вы в консоли верный или неверный результат зависит от того четные или нечетные позиции у элементов, а не от того сколько их всего

Добавлено через 4 минуты
C#
1
int[] array = { 5, -9, 20, -30, 45, 88, -100, 56, 14 };
вот такой массив к примеру выведет вам вообще два числа 88
потому что выводя 5й элемент вы выводите "старый" массив, где 5е число 88
а на 6м элементе уже "новый" где элемент 5=-100, а элемент 6 - 88
1
 Аватар для hierro108
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 28
21.08.2012, 16:35  [ТС]
Tessen, спасибо за разъяснения!
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.08.2012, 00: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
34
35
36
37
38
39
40
41
42
using System;
 
namespace ConsoleApplication18
{
    class Program
    {
        static void ChangeMinMax(int[] arr)
        {
            if (arr.Length < 2) return;
            int max, indMax, min, indMin;
            max = min = indMax = indMin = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] > max)
                {
                    max = arr[i];
                    indMax = i;
                }
                else if (arr[i] < min)
                {
                    min = arr[i];
                    indMin = i;
                }
            }
            int temp = arr[indMax];
            arr[indMax] = arr[indMin];
            arr[indMin] = temp;
        }
        
        static void Main()
        {
            var array = new[] {-1, 0, 1, 2, 3, 4, 5, 6, 9, 7, 6, 100};
            foreach (var v in array)
                Console.Write(v + " ");
            Console.WriteLine();
            ChangeMinMax(array);
            foreach (var v in array)
                Console.Write(v + " ");
            Console.ReadKey();
        }
    }
}
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.08.2012, 00:50
Лучший ответ Сообщение было отмечено как решение

Решение

Разрешите немножко поворчать?
А зачем отдельные переменные для max и min, если имеются их индексы?

Ну и чтобы два раза не вставать: иногда на собеседованиях просят поменять местами два значения без временной переменной. Может кому пригодится...
C#
1
2
3
arr[indMax] ^= arr[indMin];
arr[indMin] ^= arr[indMax];
arr[indMax] ^= arr[indMin];
5
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.08.2012, 00:58
kolorotur, гениально
0
5 / 5 / 3
Регистрация: 21.08.2012
Сообщений: 205
22.08.2012, 02:21
Я как новичек, скажите что делает этот оператор?
C#
1
^=
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.08.2012, 03:47
Dzib,
a^=b <=> a = a ^b
^ - XOR
1
 Аватар для hierro108
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 28
22.08.2012, 05:01  [ТС]
красота, снимаю шляпу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2012, 05:01
Помогаю со студенческими работами здесь

Найти минимальный и максимальный элементы массива и поменять их местами
Найти минимальный и максимальный элементы массива и поменять их местами. C#

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

Поменять местами первый максимальный и последний минимальный элементы
Поменять местами первый максимальный и последний минимальный элементы. РАСПИШИТЕ ИХ КОМЕНТАРИИ))ПОЖАЛУЙСТА...

Поменять местами строки, содержащие максимальный и минимальный элементы
Помогите пожалуйста решить две задачи. Что-то совсем запутался. №1 Пусть С – двумерный массив целых чисел размерности 6 x 6. Заполните...

В массиве А из 12 целых чисел поменять местами максимальный и минимальный элементы
«Обработка одномерных массивов»: В массиве А из 12 целых чисел поменять местами максимальный и минимальный элементы, а все элементы,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru