Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
1
.NET 4.x

Сортировка массива. Исправить ошибки в коде

26.03.2014, 13:21. Просмотров 777. Ответов 17
Метки нет (Все метки)

Ребят не могу дописать код что бы он правельно работал
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.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        static void Main()
        {
            // Считываем размер массива,
            // который необходимо отсортировать
            int size;
            size = Convert.ToInt32(Console.ReadLine());
            // Динамически выделяем память под
            // хранение массива размера size
            int[] a = new int [size];
            //считываем строку
            string str = Console.ReadLine();
            //разбиваем по пробелам
            string[] mas = str.Split(' ');
            //парсим в массив
            for (int i = 0; i < size; i++)
            {
                a[i] = int.Parse(mas[i]);
            }
 
            int step = size / 2;//инициализируем шаг.
            while (step > 0)//пока шаг не 0
            {
                for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //будем идти начиная с i-го элемента
                    while (j >= 0 && a[j] > a[j + step])
                    //пока не пришли к началу массива
                    //и пока рассматриваемый элемент больше
                    //чем элемент находящийся на расстоянии шага
                    {
                        //меняем их местами
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--;
                    }
                }
                step = step / 2;//уменьшаем шаг
            }
            // Выводим отсортированный массив
            for (int i = 0; i < size; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2014, 13:21
Ответы с готовыми решениями:

Элемент находится за пределом массива, исправить ошибки в коде
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Поиск минимального элемента массива, введенного с клавиатуры. Исправить ошибки в коде
int mas = { 1,2,3,4,2,3,6,10 }; int max = mas, index = -1; for (int i...

Сортировка линейного массива: исправить ошибки в коде
Задача такая: В областной олимпиаде по ИКТ участвовало 37 школ. Команды набрали от 12 до 56...

Сортировка - исправить ошибки в коде
Подскажите пожалуйста,где ошибка? for (i = 0; i&lt;k; i++) for (j = 0; j&lt;k - 1; j++){...

17
47 / 39 / 36
Регистрация: 25.07.2013
Сообщений: 177
26.03.2014, 13:45 2
А что с этим кодом не так, что не так происходит, какие ошибки появляются?
0
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 13:57  [ТС] 3
не могу написать что бы он выводил наподобия такого
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void Main(string[] args)
{
int n = 8;
int[] a = new int[n]; 
Random rand = new Random(); 
 
for (int i = 0; i < n; i++)
{
a[i] = rand.Next(10);
Console.Write(a[i] + " "); 
}
Console.WriteLine();
a = QuickSort(a, 0, a.Length - 1);
 
for (int i = 0; i < n; i++)
{
Console.Write(a[i] + " "); 
}
Console.ReadKey();
0
1053 / 860 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.03.2014, 14:02 4
grial09, что значит "наподобия такого"?
1
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 14:08  [ТС] 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
static void Main(string[] args)
{
int n = 8;
int[] a = new int[n]; 
Random rand = new Random(); 
 
for (int i = 0; i < n; i++)
{
a[i] = rand.Next(10);
Console.Write(a[i] + " "); 
}
Console.WriteLine();
a = QuickSort(a, 0, a.Length - 1);
 
for (int i = 0; i < n; i++)
{
Console.Write(a[i] + " "); 
}
Console.ReadKey();
вот такого
 
[size="1"][color="grey"][I]Добавлено через 3 минуты[/I][/color][/size]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = 8;
            int[] a = new int[n];
            Random rand = new Random();
 
            for (int i = 0; i < n; i++)
            {
                a[i] = rand.Next(10);
                Console.Write(a[i] + " ");
            }
            Console.WriteLine();
            a = QuickSort(a, 0, a.Length - 1);
 
            for (int i = 0; i < n; i++)
            {
                Console.Write(a[i] + " ");
            }
            Console.ReadKey();
            // Считываем размер массива,
            // который необходимо отсортировать
            int size;
            size = Convert.ToInt32(Console.ReadLine());
            // Динамически выделяем память под
            // хранение массива размера size
            int[] a = new int[size];
            //считываем строку
            string str = Console.ReadLine();
            //разбиваем по пробелам
            string[] mas = str.Split(' ');
            //парсим в массив
            for (int i = 0; i < size; i++)
            {
                a[i] = int.Parse(mas[i]);
            }
 
            int step = size / 2;//инициализируем шаг.
            while (step > 0)//пока шаг не 0
            {
                for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //будем идти начиная с i-го элемента
                    while (j >= 0 && a[j] > a[j + step])
                    //пока не пришли к началу массива
                    //и пока рассматриваемый элемент больше
                    //чем элемент находящийся на расстоянии шага
                    {
                        //меняем их местами
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--;
                    }
                }
                step = step / 2;//уменьшаем шаг
            }
            // Выводим отсортированный массив
            for (int i = 0; i < size; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
    }
}
0
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
26.03.2014, 14:08 6
grial09, выражайтесь понятным языком, в чем ваша просьба .Либо вы сами не понимаете что пишите
0
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 14:09  [ТС] 7
вот этот код нужно запустить
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = 8;
            int[] a = new int[n];
            Random rand = new Random();
 
            for (int i = 0; i < n; i++)
            {
                a[i] = rand.Next(10);
                Console.Write(a[i] + " ");
            }
            Console.WriteLine();
            a = QuickSort(a, 0, a.Length - 1);
 
            for (int i = 0; i < n; i++)
            {
                Console.Write(a[i] + " ");
            }
            Console.ReadKey();
            // Считываем размер массива,
            // который необходимо отсортировать
            int size;
            size = Convert.ToInt32(Console.ReadLine());
            // Динамически выделяем память под
            // хранение массива размера size
            int[] a = new int[size];
            //считываем строку
            string str = Console.ReadLine();
            //разбиваем по пробелам
            string[] mas = str.Split(' ');
            //парсим в массив
            for (int i = 0; i < size; i++)
            {
                a[i] = int.Parse(mas[i]);
            }
 
            int step = size / 2;//инициализируем шаг.
            while (step > 0)//пока шаг не 0
            {
                for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //будем идти начиная с i-го элемента
                    while (j >= 0 && a[j] > a[j + step])
                    //пока не пришли к началу массива
                    //и пока рассматриваемый элемент больше
                    //чем элемент находящийся на расстоянии шага
                    {
                        //меняем их местами
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--;
                    }
                }
                step = step / 2;//уменьшаем шаг
            }
            // Выводим отсортированный массив
            for (int i = 0; i < size; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
    }
}
0
100 / 100 / 39
Регистрация: 17.04.2011
Сообщений: 554
26.03.2014, 14:14 8
зачем вы копируете постоянно код, да и не форматируете еще его. Можете словами объяснить что не так у вас в коде работает. Или что вам нужно получить.Условия задачи
0
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 14:39  [ТС] 9
нужно исправить ошибки в коде что бы он запустился
0
valera_21
26.03.2014, 14:51
  #10

Не по теме:

ну знаете ли, я могу таааак исправить... запустится вообще на ура

0
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 15:00  [ТС] 11
можете исправить?
0
1053 / 860 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.03.2014, 15:04 12
grial09, код, указанный в начале темы запускается и работает исправно
1
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
26.03.2014, 17:31  [ТС] 13
подскажите а что нужно водить после того как его запустить я его запускаю вожу цифры и все так он ничего не выдает
0
1053 / 860 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
02.04.2014, 16:40 14
grial09, создайте новый проект и внесите в него код для сортировки Шелла. у вас тут присутсвует код для быстрой сортировки - он и конфликтует с остальным
1
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
02.04.2014, 16:43  [ТС] 15
помогите пожалуйста вот сам орегинальный код шелла ,когда я его запускаю и вожу число он не выводит в чем причина?
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.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        static void Main()
        {
            // Считываем размер массива,
            // который необходимо отсортировать
            int size;
            size = Convert.ToInt32(Console.ReadLine());
            // Динамически выделяем память под
            // хранение массива размера size
            int[] a = new int [size];
            //считываем строку
            string str = Console.ReadLine();
            //разбиваем по пробелам
            string[] mas = str.Split(' ');
            //парсим в массив
            for (int i = 0; i < size; i++)
            {
                a[i] = int.Parse(mas[i]);
            }
 
            int step = size / 2;//инициализируем шаг.
            while (step > 0)//пока шаг не 0
            {
                for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //будем идти начиная с i-го элемента
                    while (j >= 0 && a[j] > a[j + step])
                    //пока не пришли к началу массива
                    //и пока рассматриваемый элемент больше
                    //чем элемент находящийся на расстоянии шага
                    {
                        //меняем их местами
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--;
                    }
                }
                step = step / 2;//уменьшаем шаг
            }
            // Выводим отсортированный массив
            for (int i = 0; i < size; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
    }
}
0
51 / 51 / 10
Регистрация: 26.09.2013
Сообщений: 277
02.04.2014, 16:48 16
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        static void Main()
        {
            int n = 8;
            int[] a = new int[n];
            Random rand = new Random();
 
            for (int i = 0; i < n; i++)
            {
                a[i] = rand.Next(10);
                Console.Write(a[i] + " ");
            }
            Console.WriteLine();
            a = QuickSort(a, 0, a.Length - 1);
 
            for (int i = 0; i < n; i++)
            {
                Console.Write(a[i] + " ");
            }
            Console.ReadKey();
            // Считываем размер массива,
            // который необходимо отсортировать
            int size;
            size = Convert.ToInt32(Console.ReadLine());
            // Динамически выделяем память под
            // хранение массива размера size
            a = new int[size];
            //считываем строку
            string str = Console.ReadLine();
            //разбиваем по пробелам
            string[] mas = str.Split(' ');
            //парсим в массив
            for (int i = 0; i < size; i++)
            {
                a[i] = int.Parse(mas[i]);
            }
 
            int step = size / 2;//инициализируем шаг.
            while (step > 0)//пока шаг не 0
            {
                for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //будем идти начиная с i-го элемента
                    while (j >= 0 && a[j] > a[j + step])
                    //пока не пришли к началу массива
                    //и пока рассматриваемый элемент больше
                    //чем элемент находящийся на расстоянии шага
                    {
                        //меняем их местами
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--;
                    }
                }
                step = step / 2;//уменьшаем шаг
            }
            // Выводим отсортированный массив
            for (int i = 0; i < size; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
 
        private static int[] QuickSort(int[] ints, int i, int i1)
        {
            throw new NotImplementedException();
        }
    }
1
6 / 6 / 1
Регистрация: 27.03.2013
Сообщений: 121
02.04.2014, 16:53  [ТС] 17
C#
1
2
3
4
5
6
private static int[] QuickSort(int[] ints, int i, int i1)
        {
            throw new NotImplementedException();
        }
    }
    }
а что это значит? и когда запускаешь код просто выводится числа и все
0
1053 / 860 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
02.04.2014, 17:30 18
grial09, сначала вы вводите одно число - размер массива
потом вы должны в строчку через пробел ввести все числа массива - столько, сколько указали. иначе недостающие элементы будут 0

Добавлено через 2 минуты
grial09, а это значит, что вы написали использовать метод QuickSort - студия его не нашла, и предложила создать шаблон для него - и создала - то, что вы написали.

Добавлено через 54 секунды
grial09, а только числа и должны выводится. только если вы ввели числа в любом порядке, то выведет все числа от меньшего к большему
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2014, 17:30

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

Сортировка - исправить ошибки в коде
Const x:arrayof integer=(-1,2,4,-8,1,3,5,13,-4,7); Var i,s,k:integer; Begin for k:=5 to 8...

Merge sort (Сортировка слиянием) - исправить ошибки в коде
Privet dami i gospoda. Ne poluchaetsa realisovat' Merge sort. Proga kompiliruetsa no sorting ne...

Сортировка массивов посредством вставок. Исправить ошибки в приведенном коде
program sort_vstav; {$APPTYPE CONSOLE} uses SysUtils, Math; const nn=20; var a:array of...

Сортировка строк: склеивается вторая и третья строка (найти и исправить ошибки в коде)
#include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...


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

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

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