С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
1

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

17.06.2013, 10:21. Показов 1825. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан целочисленный массив из n=10 элементов (1,7,3,9,3,-6,8,3,1,8)
Найти:
1) Переставить в этом массиве максимальный и минимальный элементы.
2) Вычислить сумму и произведение элементов.
3) Выполнить сортировку массива в порядке убывания элементов. Метод пузырьковый.

Я лишь в общих чертах представляю, как это сделать, и то наверняка самым топорным образом. Помогите, пожалуйста, кому не трудно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2013, 10:21
Ответы с готовыми решениями:

Переставить местами первые минимальный и максимальный элементы массива из n вещественных чисел
"Переставить местами первый минимальный и первый максимальный элементы массива из n вещественных...

Определить максимальный и минимальный элементы главной диагонали и переставить местами столбцы
Нужна помощь,дали задание по C#, в котором не разбираюсь. Задан массив размером NxN. Определить...

Переставить максимальный и минимальный элементы в массиве
Здравствуйте Есть 1 массив, который надо вбить. В этом массиве нужно определить и переставить...

Переставить максимальный и минимальный элементы в массиве.
Добрый день, помогите. Переставить максимальный и минимальный элементы в массиве.

10
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 7
17.06.2013, 11:24 2
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] massiv = { 1, 5, -7, 3, -5, 12, 1, 3, 5, 3 };
            //объявляю массив и инициализирую его
 
 
            //для нахождения максимального элемента
            int max_element = massiv[0];
            //ввожу переменную max_element и присваиваю ей значение первого элемента массива
            for (int i = 1; i < massiv.Length; ++i)
                if (max_element < massiv[i])
                    max_element = massiv[i];
            //перебираю все элементы массива и сравниваю с max_element, если значение какого-либо элемента 
            //больше значения max_element, то переменой max_element присваиваю значение этого элемента.
            string Max_Element=Convert.ToString(max_element);
            //для удобства вывода конвертирую целочисленный тип в строковый.
            Console.WriteLine("Значение максимального элемента равно: " + Max_Element);
            //вывожу
 
 
            //для нахождения минимального элемнта 
            int min_element = massiv[0];
            for (int j = 1; j < massiv.Length; ++j)
                if (min_element > massiv[j])
                    min_element = massiv[j];
            //перебираю все элементы массива и сравниваю с min_element, если значение какого-либо элемента 
            //меньше значения min_element, то переменой min_element присваиваю значение этого элемента.
            string Min_Element = Convert.ToString(min_element);
            Console.WriteLine("Значение минимального элемента равно: " + Min_Element);
 
 
            //вычеслить сумму
            int sum = 0;
            for (int s = 0; s < massiv.Length; ++s)
                sum = sum + massiv[s];
            //перебираю все элементы массива и сохраняю в sum значение sum плюс текущего элемента массива
            string Sum = Convert.ToString(sum);
            Console.WriteLine("Сумма всех элементов равна: " + Sum);
 
 
            //вычеслить произведение
            int proiz = 1;
            for (int p = 0; p < massiv.Length; ++p)
                proiz = proiz * massiv[p];
            //перебираю все элементы массива и сохраняю в proiz значение proiz умноженное на текущий элемент массива
            string Proiz = Convert.ToString(proiz);
            Console.WriteLine("Произведение всех элементов равно: " + Proiz);
        }
    }
}
0
104 / 104 / 19
Регистрация: 23.05.2013
Сообщений: 185
17.06.2013, 12:05 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
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
65
66
67
68
69
 static void Main()
    {
       MyArr arr = new MyArr();
       arr.Print("Исходный массив:\t");
        arr.Swap();
        arr.Print("Результат:\t\t");
        Console.WriteLine("Сумма элементов:\t"+arr.GetSum());
        Console.WriteLine("Произведение элементов:\t"+arr.GetMult());
        arr.Sort();
        arr.Print("Отсортированный массив:\t");
    }
    
    public class MyArr
    {
        private int[] arr;
        public MyArr()
        {
            arr = new int[] { 1, 7, 3, 9, 3, -6, 8, 3, 1, 8 };
        }
 
        public void Swap()
        {
            int tmp = arr[GetMinIdx()];
            arr[GetMinIdx()] = arr[GetMaxIdx()];
            arr[GetMaxIdx()] = tmp;
            
        }
        public int GetMinIdx()
        {
            return Array.IndexOf(arr, arr.Min());
        }
        public int GetMaxIdx()
        {
            return Array.IndexOf(arr, arr.Max());
        }
        public void Print(string msg)
        {
            Console.Write(msg+ string.Join(" ", arr) + "\n");
        }
        public int GetSum()
        {
            return arr.Sum();
        }
        public int GetMult()
        {
            int result = 1;
            foreach (int i in arr)
            {
                result *= i;
            }
            return result;
        }
        public void Sort()
        {
            int tmp;
            for (int j = 0; j < arr.Length - 1; ++j)
            {
                for (int i = 0; i < arr.Length - j - 1; ++i)
                {
                    if (arr[i] <= arr[i + 1])
                    {
                        tmp = arr[i];
                        arr[i] = arr[i + 1];
                        arr[i + 1] = tmp;
                    }
                }
            }
        }
    }
P.S. Хотелось бы узнать мнение профессионалов по поводу корректности написанного кода, много ли "говнокода" получилось?.
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
17.06.2013, 12:08  [ТС] 4
rruuffiinnaa, Благодарю =)
Там правда не всё. Можете добавить, как переставить эти максимальный и минимальный элементы?

Добавлено через 2 минуты
FrostByte,
MyArr - это что? Ваша переменная или ключевое слово?
0
104 / 104 / 19
Регистрация: 23.05.2013
Сообщений: 185
17.06.2013, 12:14 5
Вот, изменил метод Swap()
Кликните здесь для просмотра всего текста
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
65
66
67
static void Main()
    {
       MyArr arr = new MyArr();
       arr.Print("Исходный массив:\t");
        arr.Swap(arr.GetMinIdx(), arr.GetMaxIdx());
        arr.Print("Результат:\t\t");
        Console.WriteLine("Сумма элементов:\t"+arr.GetSum());
        Console.WriteLine("Произведение элементов:\t"+arr.GetMult());
        arr.Sort();
        arr.Print("Отсортированный массив:\t");
    }
    
    public class MyArr
    {
        private int[] arr;
        public MyArr()
        {
            arr = new int[] { 1, 7, 3, 9, 3, -6, 8, 3, 1, 8 };
        }
 
        public void Swap(int min, int max)
        {
            int tmp = arr[min];
            arr[min] = arr[max];
            arr[max] = tmp;
            
        }
        public int GetMinIdx()
        {
            return Array.IndexOf(arr, arr.Min());
        }
        public int GetMaxIdx()
        {
            return Array.IndexOf(arr, arr.Max());
        }
        public void Print(string msg)
        {
            Console.Write(msg+ string.Join(" ", arr) + "\n");
        }
        public int GetSum()
        {
            return arr.Sum();
        }
        public int GetMult()
        {
            int result = 1;
            foreach (int i in arr)
            {
                result *= i;
            }
            return result;
        }
        public void Sort()
        {
            int tmp;
            for (int j = 0; j < arr.Length - 1; ++j)
            {
                for (int i = 0; i < arr.Length - j - 1; ++i)
                {
                    if (arr[i] <= arr[i + 1])
                    {
                        Swap(i, i+1);
                    }
                }
            }
        }
    }


Добавлено через 2 минуты
Цитата Сообщение от SrgKord Посмотреть сообщение
MyArr - это что? Ваша переменная или ключевое слово?
Это класс который содержит все необходимые методы для решения вашей задачи. После Main идет объявление класса.
C#
1
2
3
4
public class MyArr
{
     ..........
}
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
17.06.2013, 12:19  [ТС] 6
FrostByte, забыл поблагодарить вас =) Пока разобрался, что это полное решение.
У вас очень не знакомый мне код, я видимо ещё не дошёл до того места в книге, где описываются эти ключевые слова и методы.

Добавлено через 1 минуту
Цитата Сообщение от FrostByte Посмотреть сообщение
Вот, изменил метод Swap()
А можно узнать, что вы сделали, ну т.е. для чего? Ведь программа и так работала. Почему это нужно было сделать?
0
104 / 104 / 19
Регистрация: 23.05.2013
Сообщений: 185
17.06.2013, 12:24 7
Метод используется для смены минимального и максимального элементов массива. Такую же операцию необходимо применять при сортировке массива. Для этого я передаю в метод индексы элементов которые надо поменять местами. Это позволяет избежать дублирования кода
1
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
17.06.2013, 12:39  [ТС] 8
FrostByte,
А вы учитесь где-то по специальности?
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 7
17.06.2013, 16:08 9
Цитата Сообщение от FrostByte Посмотреть сообщение
public void Print(string msg)
* * * * {
* * * * * * Console.Write(msg+ string.Join(" ", arr) + "\n");
* * * * }
А можно объяснить этот метод поподробнее.
0
104 / 104 / 19
Регистрация: 23.05.2013
Сообщений: 185
17.06.2013, 16:23 10
C#
1
2
3
4
public void Print(string msg)
        {
            Console.Write(msg+ string.Join(" ", arr) + "\n");
        }
метод Join сцепляет все элементы массива строк, помещая между ними заданный разделитель. Взято отсюда: MSDN
1
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
18.06.2013, 11:14  [ТС] 11
Цитата Сообщение от FrostByte Посмотреть сообщение
помещая между ними заданный разделитель
Видимо разделителем в данном случае является пробел?:

Цитата Сообщение от FrostByte Посмотреть сообщение
(" ",
0
18.06.2013, 11:14
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2013, 11:14
Помогаю со студенческими работами здесь

Переставить в массиве местами максимальный и минимальный элементы
Вычислить выражение 1*2+2*3*4+3*4*5*6+...+n*(n+1)*(n+2)*...*2n Дан массив X из N...

Найти минимальный и максимальный элементы в одномерном массиве и переставить их местами
1Найти минимальный и максимальный элементы и переставить их местами.

В массиве переставить местами первый и максимальный элементы, а также последний и минимальный
В массиве переставить местами первый и максимальный элементы, а также последний и минимальный.

Переставить местами максимальный и минимальный элементы массива
Задан массив, предположим размером 5. Мин и макс.: const int N = 5; int main() { int A, i,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru