0 / 0 / 0
Регистрация: 01.05.2018
Сообщений: 27
1

Найти ошибки в коде. Массивы

06.06.2018, 16:51. Показов 1120. Ответов 6

Необходимо ввести с клаватуры размер массива А, сгенерировать его и сформировать новый массив В из положительных элементов массива А и массив С из отрицательных элементов массива А.
Массив генерируется и выводится , но дальше ничего не выводит. Помогите исправить , чтобы выводились массив В и массив С.
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
Console.Write("Введите размер массива:");
            string s = Console.ReadLine();
            int N;
 
            while (true)
            {
                if (int.TryParse(s, out N))
                    break;
                OutErrorMessage("\t\tОшибка ввода");
            }
            Random random = new Random();
 
 
            int[] A = new int[N];
 
            int Counter_B = 0;
            int Counter_C = 0;
            int[] B = new int[Counter_B];
 
 
            int[] C = new int[Counter_C];
            int i;
 
 
            for (i = 0; i < N; i++)
            {
                A[i] = random.Next(-20, 20);
                Console.Write(A[i] + " ");
            }
            for (i = 0; i < N; i++)
            {
                if (A[i] > 0)
                { B[Counter_B] = A[i]; Counter_B++; }
 
                if (A[i] < 0)
                { C[Counter_C] = A[i]; Counter_C++; }
 
            }
            for (i = 0; i < Counter_B; i++)
            {
                Console.Write(B[Counter_B++] + " ");
 
            }
            for (i = 0; i < Counter_C; i++)
            {
                Console.Write(C[Counter_C++] + " ");
 
            }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2018, 16:51
Ответы с готовыми решениями:

Найти ошибки в коде. Двумерные массивы
В двумерном массиве все элементы, стоящие выше максимального элемента, заменить на минимальный...

Найти и исправить ошибки в коде (массивы)
y=0; for(i=1;i&lt;=F;i++) { y=y+w*x; cout&lt;&lt;y; } Выдает нули для всех y. Помогите...

Функции и массивы: найти и исправить ошибки в коде
Я написал три функции, но после запуска, выводят ошибки, что не так? // Вариант 1. // Выполнить...

Посмотрите ошибки в готовом коде (Массивы)
Код готовый, посмотрите пожалуйста недочеты и красоту. Задание: Дан массив A(n), разработать...

6
314 / 243 / 149
Регистрация: 03.10.2017
Сообщений: 885
Записей в блоге: 1
06.06.2018, 17:00 2
Лучший ответ Сообщение было отмечено the_evile_panda как решение

Решение

Я вам уже писал
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
public static void Print(int[] Array)
        {
            Console.WriteLine();
            for (int i = 0; i < Array.Length; i++) Console.Write(Array[i]+" ");
        }
 
        static void Main(string[] args)
        {
            Console.Write("Введите размер массива:");
            string s = Console.ReadLine();
            int N;
 
            while (true)
            {
                if (int.TryParse(s, out N))
                    break;
                OutErrorMessage("\t\tОшибка ввода");
            }
            Random random = new Random();
 
            int[] A = new int[N];
 
            for (int i = 0; i < N; i++)
            {
                A[i] = random.Next(-20, 20);
            }
 
            Print(A);
 
            int count = 0;
            for (int i = 0; i < A.Length; i++)
            {
                if (A[i] > 0) count++;
            }
 
            int[] B = new int[count];
            int[] C = new int[A.Length - count];
 
            int j = 0, k = 0;
            for (int i=0;i<A.Length;i++)
            {
                if(A[i]>0)
                {
                    B[j] = A[i];
                    j++;
                }
                else
                {
                    C[k] = A[i];
                    k++;
                }
            }
 
            Print(B);
            Print(C);
            Console.ReadLine();
 
        }
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
06.06.2018, 17:10 3
the_evile_panda,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Console.Write("Enter quantity of elements: ");
int quantity = Convert.ToInt32(Console.ReadLine());
int[] array = new int[quantity];
 
Random random = new Random();
 
array = array.Select(e => random.Next(-100, 100)).ToArray();
 
int[] positiveArray = array.Where(e => e > 0).ToArray();
 
int[] negativeArray = array.Where(e => e < 0).ToArray();
 
Console.WriteLine($"Source array: {String.Join(" ", array)}");
 
Console.WriteLine($"Positive array: {String.Join(" ", positiveArray)}");
 
Console.WriteLine($"Negative array: {String.Join(" ", negativeArray)}");
 
Console.ReadKey();
0
0 / 0 / 0
Регистрация: 01.05.2018
Сообщений: 27
06.06.2018, 17:11  [ТС] 4
Спасибо огроооомноооее!)
0
1135 / 938 / 240
Регистрация: 15.06.2012
Сообщений: 3,654
Записей в блоге: 1
06.06.2018, 17:15 5
C#
1
2
3
4
int Counter_B = 0;
int Counter_C = 0;
int[] B = new int[Counter_B];
int[] C = new int[Counter_C];
У вас создаются нулевые массивы. По хорошему нужно использовать List<int>, ну или создавать максимально возможной длины.

C#
1
Console.Write(C[Counter_C++] + " ");
єт вообще что? )

рабочий вариант

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
        static void Main(string[] args)
        {
            Console.Write("Введите размер массива:");
            int N;
 
            while (!int.TryParse(Console.ReadLine(), out N))
            {
                Console.WriteLine("Ошибка ввода");
            }
            var random = new Random();
 
            var A = new int[N];
            var B = new int[N];
            var C = new int[N];
 
            int Counter_B = 0;
            int Counter_C = 0;
 
            Console.WriteLine("A: ");
            for (var i = 0; i < A.Length; i++)
            {
                A[i] = random.Next(-20, 20);
                Console.Write(A[i] + " ");
            }
 
            for (var i = 0; i < A.Length; i++)
            {
                if (A[i] > 0)
                    B[Counter_B++] = A[i];
 
                if (A[i] < 0)
                    C[Counter_C++] = A[i];
            }
 
            Console.Write("\nB: ");
            for (var i = 0; i < Counter_B; i++)
                Console.Write(B[i] + " ");
 
            Console.Write("\nC: ");
            for (var i = 0; i < Counter_C; i++)
                Console.Write(C[i] + " ");
 
            Console.ReadKey();
        }
1
0 / 0 / 0
Регистрация: 01.05.2018
Сообщений: 27
06.06.2018, 17:15  [ТС] 6
Спасибо большое
0
3321 / 2367 / 1147
Регистрация: 14.08.2016
Сообщений: 7,987
06.06.2018, 17:21 7
Wolfdp, по хорошему B и C надо бы отресайзить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2018, 17:21
Помогаю со студенческими работами здесь

Исправить ошибки в коде (указатели и массивы)
Ребята, помогите пожалуйста проставить указатели в массиве, я не понимаю как это должно выглядеть...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private:...

Найти ошибки в коде
Нужно найти сумму во всех строках заданной матрицы,вывести наименьшую сумму и номер строки,где эта...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru