Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
EnotAnchi
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 2
1

Доработка кода поиска минимума и максимума. Программа зацикливается.

28.12.2016, 04:26. Просмотров 316. Ответов 1
Метки нет (Все метки)

Вобщем
Вот задание:
Разработать и реализовать алгоритм, который будет искать 3-й минимум и 4-й максимум в массиве, размер которого определяется пользователем (но не более 200) следующим образом:
1)Ввод количества элементов
2)Ввод элементов массива
3)Сортировка массива
4)Копирование отсортированного массива в другой, исключая повторяющиеся элементы
5)Вывод искомых минимумов и максимумов, если они есть с помощью второго массива.

Вот код:

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int kol_vo = 201, kol_vo2 = 0;
            string povtor = "", pr2 = "";
            bool pr = true, kazuli = true, ml = true, ll = false;
            Console.WriteLine("Доброго времени суток\nПриветствуем Вас в нашей программе\nДля корректной работы с программой необходимо вводить целые числа\n");
            while (ml == true)
            {
                Console.WriteLine("Введите размер массива");
                while (kazuli == true)
                {
                    do
                    {
                        pr2 = Convert.ToString(Console.ReadLine());
                        int m = 0;
                        kazuli = int.TryParse(pr2, out m);
                        if (kazuli == false)
                            Console.WriteLine("Введите, пожалуйста, цифры");
                        else
                        {
                            while (kol_vo > 200)
                            {
                                kol_vo = Convert.ToInt32(pr2);
                                if (kol_vo > 200)
                                    Console.WriteLine("Вы задали слишком большой рамер массива");
                            }
                            break;
                        }
                    }
                    while (!kazuli);
                    break;
                }
 
 
                double[] mas = new double[kol_vo];
 
                for (int i = 0; i < mas.Length; i++)
                {
                    while (pr == true)
                    {
                        do
                        {
                            Console.WriteLine("[" + i + "]:");
                            pr2 = Convert.ToString(Console.ReadLine());
                            int r = 0;
                            pr = int.TryParse(pr2, out r);
                            if (pr == false)
                                Console.WriteLine("Введите, пожалуйста, цифры");
                            else
                            {
                                mas[i] = Convert.ToDouble(pr2);
                                break;
                            }
                        }
                        while (!pr);
                        break;
                    }
                }
 
                Array.Sort(mas);
 
                for (int j = 0; j < mas.Length; j++)
                {
                    if (!povtor.Contains(mas[j].ToString()))
                    {
                        kol_vo2++;
                        povtor += mas[j];
                    }
                }
                double[] mas2 = new double[kol_vo2];
                int ig = 0;
                povtor = "";
                for (int j = 0; j < mas.Length; j++)
                {
                    if (!povtor.Contains(mas[j].ToString()))
                    {
                        mas2[ig] = mas[j];
                        povtor += mas[j];
                        ig++;
                    }
                }
                Console.WriteLine();
                for (int j = 0; j < mas2.Length; j++)
                {
                    Console.WriteLine(mas2[j]);
                }
                Console.WriteLine();
                if (kol_vo2 > 3)
                    Console.WriteLine("3-й минимум: " + mas2[2] + "\n4-й максимум: " + mas2[(kol_vo2 - 4)]);
                else if (kol_vo2 == 3)
                    Console.WriteLine("3-й минимум: " + mas2[2] + "\n4-го максимума не существует, Ваш массив меньше");
                else if (kol_vo2 < 3)
                    Console.WriteLine("3-го минимума и 4-го максимума не существует, Ваш массив меньше");
                Console.WriteLine("\nНе желаете ли продолжить работу с прогруммой?");
                string vv = "";
 
                while (ll == false)
                {
                    vv = Convert.ToString(Console.ReadLine());
                    if (vv == "нет" || vv == "Нет" || vv == "Не" || vv == "не" || vv == "No" || vv == "no")
                    {
                        ml = false;
                        ll = true;
                    }
                    else if (vv == "Да" || vv == "да" || vv == "Yes" || vv == "yes")
                    {
                        ml = true;
                        ll = true;
                    }
                    else
                    {
                        Console.WriteLine("Ответ не ясен, повторите");
                        ll = false;
                    }
                }
            }
            Console.WriteLine("До свидания\nСпасибо, что использовали нашу программу");
            Console.ReadKey();
        }
    }
}
 Комментарий модератора 
Код должен быть заключен в соответствующие языку теги


При запросе количества элементов в массиве (например 222или 352 и т.д) программа залетает в бесконечный цикл.
Может кто помочь?
Заранее благодарен за помощь.

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

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2016, 04:26
Ответы с готовыми решениями:

Распараллеливание поиска минимума и максимума с помощью класса Task
Ребят, помогите написать программу. Сколько голову не ломала не смогла. Вычислить максимальное и...

Разработать алгоритм поиска 3-его минимума и 4-ого максимума в массиве
Разработать и реализовать алгоритм, который будет искать 3-й минимум и 4-й максимум в массиве,...

Как записать код поиска минимума, максимума через метод?
Подскажите пожалуйста, как данный код записать через метод Console.WriteLine(&quot;введите 3 числа&quot;);...

Нахождение максимума и минимума
Нахождение максимума и минимума: В двумерном массиве хранится информация о баллах, полученных...

Поиск максимума и минимума в массиве
Помогите пожалуйста написать программу через класс Array using System; using...

1
ata
260 / 244 / 186
Регистрация: 28.10.2015
Сообщений: 723
28.12.2016, 07:06 2
Я только что решал эту задачу.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2016, 07:06

Нахождение индекса максимума и минимума в колонке
class FindWeather { static void Main(string args) { string...

Как посортировать одномерный массив от минимума до максимума?
Здравствуйте помогите пожалуйста... Как посортировать одномерный массив от минимума до...

Нахождение максимума и минимума графика функции на промежутке от -10 до 10
Написать программу, для нахождения максимумаи минимума графика функции на промежутке от -10 до 10....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru