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

Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями

03.07.2013, 17:39. Показов 2574. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз с заданием:

Размерность массива – 100, диапазон значений [-50,50]. Во всех последовательностях
отрицательных чисел поменять местами элементы с максимальным и минимальным
значениями.

Я вроде как ее написал, но она не совсем так как нужно работает. Помогите пожалуйста разобраться, где у меня ошибка, а то я совсем запутался(
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
static void Num6()
        {
            int[] array = new int[100];
            Random rnd = new Random();
            for (int i = 0; i < array.Length; i++)
                array[i] = rnd.Next(-50, 50);
            Console.Write("Массив:  ");
            foreach (int x in array)
                Console.Write(x + " ");
            Console.WriteLine();
            bool f1 = false;
            bool f2 = false;
            int max = -555;
            int min = -555;
            int j = 0;
            int count = 0;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] < 0 && array[i + 1] < 0)
                {
                    j = i;
                    count++;
                    f1 = true;
                    f2 = false;
                    if (max == -555)
                        max = array[i];
                    else if (max > array[i])
                        max = array[i];
                    if (min == -555)
                        min = array[i];
                    else if (min < array[i])
                        min = array[i];                       
                }
                else
                    f2 = true;
                if (f1 && f2)
                {
                    int k = j - count;
                    for (; k < j; k++)
                    {
                        if (array[k] == max)
                            array[k] = min;
                        if (array[k] == min)
                            array[k] = max;
                    }
                    min = -555;
                    max = -555;
                    j = 0;
                    count = 0;
                    f1 = false;
                    f2 = false;
                }
            }
            Console.Write("Измененый массив:  ");
            foreach (int x in array)
                Console.Write(x + " ");
            Console.WriteLine();
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2013, 17:39
Ответы с готовыми решениями:

Во всех последовательностях чисел поменять местами элементы с максимальным и минимальным значениями
//Даны 2 одномерных массива. Во всех последовательностях отрицательных чисел поменять //местами элементы с максимальным и минимальным...

Поменять местами элементы с максимальным и минимальным значениями
Пожалуйста помогите решить задачи. 1. Дан массив на 100 элементов случайных цифр в диапазоне от -50 до 50. Во всех последовательностях...

Поменять местами элементы массивов с минимальным и максимальным значениями
Вот задание: ...

5
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
04.07.2013, 06:13
Скажите пожалуйста, что значит:
Цитата Сообщение от Kapitowka Посмотреть сообщение
Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями.
Это например:
... 1, 2, -5, -9, -7, 5, -7, -45, -11, -2 ...
надо преобразовать в:
... 1, 2, -9, -5, -7, 5, -7, -2, -11, -45, ...
так что ли?
0
0 / 0 / 3
Регистрация: 24.03.2013
Сообщений: 17
04.07.2013, 11:18  [ТС]
Цитата Сообщение от kmaffa Посмотреть сообщение
Скажите пожалуйста, что значит:

Это например:
... 1, 2, -5, -9, -7, 5, -7, -45, -11, -2 ...
надо преобразовать в:
... 1, 2, -9, -5, -7, 5, -7, -2, -11, -45, ...
так что ли?
Именно!

Добавлено через 1 час 34 минуты
А все, разобрался сам, нужно уже
0
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
04.07.2013, 11:21
Попробуйте вот так:
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
            int[] arr = new int[] { 1, 2, -5, -9, -7, 5, -45, -7, -2 };
            //Random rnd = new Random();
            //for (int i = 0; i < arr.Length; i++)
            //    arr[i] = rnd.Next(-50, 50);
 
            foreach (var t in arr)
                Console.Write("{0}\t", t);
 
            int[] tmpArr = new int[100];
 
            bool f = true; //true - положительный элемент;
            int indexMin = 0; int indexMax = 0;
 
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] < 0)
                {
                    f = false;
                    if (indexMin > 0)
                    {
                        if (arr[i] < arr[indexMin])
                            indexMin = i;
                        if (arr[i] > arr[indexMax])
                            indexMax = i;
                    }
                    else
                        indexMax = indexMin = i;
                }
 
                if (((arr[i] > 0) || (i == arr.Length - 1)) && !f)
                {
                    int tmp = arr[indexMin];
                    arr[indexMin] = arr[indexMax];
                    arr[indexMax] = tmp;
                    indexMax = indexMin = -1;
                }
 
                if (arr[i] > 0)
                    f = true;
 
            }
            Console.WriteLine();
            foreach (var t in arr)
                Console.Write("{0}\t", t);
0
25 / 25 / 4
Регистрация: 01.07.2013
Сообщений: 53
04.07.2013, 11:50
Цикл у меня получился примерно такой же, но свап я делал один раз, после цикла.
Если есть повторяющиеся мин и макс значения, свапаются ближайшие
Кликните здесь для просмотра всего текста
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
           static void Main(string[] args)
        {
            int maxVal = 0;
            int minVal = 0;          
            bool isAny = false;
            int[] mas = new int[10]; //для теста взял 10, потом поменять на 100
            Random rand = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < mas.Length; i++)
            {
                mas[i] = rand.Next(-50, 51);
                Console.Write(mas[i] + " ");
            }
            Console.WriteLine();
            
            for (int i = 0; i < mas.Length; i++) 
            {
                if (mas[i] < 0)
                {
                    if (!isAny)
                    {
                        maxVal = i;
                        minVal = i;
                        isAny = true;
                    }
                    else
                    {
                        if (mas[i] >= mas[maxVal]) maxVal = i;
                        if (mas[i] < mas[minVal]) minVal = i;
                    }
                }
            }
 
            if (isAny) Swap(ref mas[maxVal], ref mas[minVal]);
 
            for (int i = 0; i < mas.Length; i++)
            {
                Console.Write(mas[i] + " ");
            }
 
            Console.ReadLine();
 
        }
 
        public static void Swap(ref int min, ref int max)
        {
            int buf = min;
            min = max;
            max = buf;
        }
0
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
04.07.2013, 12:46
Цитата Сообщение от Vtiratelj Посмотреть сообщение
Цикл у меня получился примерно такой же, но свап я делал один раз, после цикла.
Если есть повторяющиеся мин и макс значения, свапаются ближайшие
У Вас только последний "отрезок" обрабатывается, а просили чтобы все "отрезки" обрабатывались.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.07.2013, 12:46
Помогаю со студенческими работами здесь

Поменять местами элементы массива с минимальным и максимальным значениями (Pascal -> C)
Дано натуральное число N и одномерный массив A1, A2, ..., AN целых чисел. Поменять местами элементы с минимальным и максимальным...

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

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

Поменять местами элементы массива с максимальным и минимальным значением
В массиве из 20 вещественных чисел найти и поменять местами элементы с максимальным и минимальным значением. #include &lt;iostream&gt; ...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru