15 / 11 / 4
Регистрация: 10.09.2018
Сообщений: 373
1

Создать матрицу 5х5. Чётные элементы записать в один массив, нечётные в другой

06.01.2019, 23:40. Показов 4457. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу понять почему программа работает не корректно.
Суть задания в том, что бы создать матрицу 5х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
using System;
 
namespace _11
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rand = new Random();
            int[,] Matrix = new int[5, 5];
            int[] Even;
            int[] UnEven;
            int EV = 0;
            int UN = 0;
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Matrix[i, j] = rand.Next(10);
                    Console.Write(" " + Matrix[i,j]);
 
                    if(Matrix[i,j]%2==0)
                    {
                        EV++;
                    }
                    else if(Matrix[i, j] % 2 != 0)
                    {
                        UN++;
                    }
                }
                Console.WriteLine();
            }
 
            Even = new int[EV];
            UnEven = new int[UN];
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    if(Matrix[i,j]%2==0)
                    {
                        Even[i] = Matrix[i, j];
                    }
                    else
                    {
                        UnEven[i] = Matrix[i, j];
                    }
                }
            }
            Console.WriteLine("\n");
            for (int i = 0; i < Even.Length; i++)
            {
                Console.Write(" " + Even[i]);
            }
            Console.WriteLine();
            for (int i = 0; i < UnEven.Length; i++)
            {
                Console.Write(" " + UnEven[i]);
            }
            Console.ReadLine();
        }
    }
}
Миниатюры
Создать матрицу 5х5. Чётные элементы записать в один массив, нечётные в другой  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2019, 23:40
Ответы с готовыми решениями:

Считать матрицу 5х5 из файла и записать в массив
Есть матрица 5x5 с числами типа double. Помогите пожалуйста считать ее из файла и записать в масив,...

Все положительные элементы двумерного массива записать в один одномерный массив, а остальные – в другой
Работа с несколькими массивами: Дан двумерный массив размером nxn , заполненный целыми числами....

Создать двумерный массив 5х5 и найти максимальный и минимальный элементы
Необходимо создать двумерный массив 5 х 5. Далее написать функцию, которая заполнит его ...

Интерфейс IEnumerable: вывести сначала чётные, потом нечётные элементы коллекции
Работа с коллекциями, по заданию нужно вывести сначала все четные, затем все нечётные коллекции,...

3
28 / 16 / 12
Регистрация: 06.01.2019
Сообщений: 59
07.01.2019, 00:19 2
Лучший ответ Сообщение было отмечено DragonBorn88 как решение

Решение

попробуйте так.
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 Matrix()
        {
            int x = 5, y = 5;
 
            Random rand = new Random();
            int[,] Matrix = new int[x, y];
            int[] Even;
            int[] UnEven;
            int EV = 0, UN = 0;
 
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    Matrix[i, j] = rand.Next(10);
                    Console.Write(" " + Matrix[i, j]);
 
                    if (Matrix[i, j] % 2 == 0)
                    {
                        EV++;
                    }
                    else
                    {
                        UN++;
                    }
                }
                Console.WriteLine();
            }
 
            Even = new int[EV];
            UnEven = new int[UN];
 
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    if (Matrix[i, j] % 2 == 0)
                    {
                        Even[--EV] = Matrix[i, j];
                    }
                    else
                    {
                        UnEven[--UN] = Matrix[i, j];
                    }
                }
            }
            Console.WriteLine("\n");
            for (int i = 0; i < Even.Length; i++)
            {
                Console.Write(" " + Even[i]);
            }
            Console.WriteLine();
            for (int i = 0; i < UnEven.Length; i++)
            {
                Console.Write(" " + UnEven[i]);
            }
            Console.ReadLine();
        }
0
151 / 148 / 103
Регистрация: 30.10.2016
Сообщений: 314
07.01.2019, 00:23 3
Лучший ответ Сообщение было отмечено DragonBorn88 как решение

Решение

Проблема в том, что в 44 и 48 строках, вы в одномерные массивы записываете некоторые значения на позиции "i", НО! вы очевидно забыли что делаете это во вложенном цикле, и значение "i" первые пять итераций всегда равны 0, потом следующие пять итераций "i" равна 1... т.е. вы постоянно перезаписываете значения одномерных массивов на одной и той же позиции.
0
15 / 11 / 4
Регистрация: 10.09.2018
Сообщений: 373
07.01.2019, 09:35  [ТС] 4
Цитата Сообщение от willow300 Посмотреть сообщение
т.е. вы постоянно перезаписываете значения одномерных массивов на одной и той же позиции.
Спасибо большое. Понял суть ошибки
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2019, 09:35
Помогаю со студенческими работами здесь

В один массив записать чётные, а в другой - нечётные элементы матрицы
Мужики,выручайте,экзамен! Дана матрица А,имеющая N строк и N столбцов. Сформирует едва одномерных...

Множество А содержит 20 случайных числе из диапазона от 1 до 100. Нечётные числа записать в один массив, а чётные - в другой
Множество А содержит 20 случайных числе из диапазона от 1 до 100. Нечётные числа записать в один...

Создать файл с квадратной матрицей; чётные элементы переместить в один файл, нечётные - в другой
• Создать файл с массивом А. • Четные элементы переместить в файл А • Нечетные элементы...

Из заданного массива C записать в массив А чётные положительные элементы, а в массив В нечётные отрицательные
Здравствуйте всем, помогите пожалуйста решить задачи по С++, контрольная горит, буду очень...


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

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

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