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

Разбиение массива на под массивы

06.04.2013, 22:09. Показов 3410. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Возникла вот такая задача. У нас есть массив из N элементов, пользователь вводит 2 числа. 1-е число - означает количество массивов на которое нужно разбить главный массив, а второе число это количество элементов которое будет в подмассиве. Скажите как лучше сделать? я пробовал вот так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for (int i = 1; i <= players.Length; i++) 
                    {
                        
 
                        //определяем количество элементов для каждого пользователя
                        Console.WriteLine("Введите количество карт для игрока " +i);
                        int cardsPlayer = Convert.ToInt32(Console.ReadLine());
                        
                        for (int j = 1; j <= cardsPlayer; j++) 
                            {
                              File playerFile = new File("Player " + i);
                               playerFile.Create();    
                            
 
                                var rand = new System.Random();
                                string temp = cards[rand.Next(0,cards.Length-1-j)];
                                //System.IO.File.AppendAllText("Player " + i, temp);
                                Console.WriteLine(temp);
                                
                            }
                    }
Тут проблема в том, что из-за того, что не происходит удаление уже выбранного элемента, он нам попадает второй раз.

Добавлено через 13 часов 31 минуту
Не претендую на то, что это хороший код, но вот что у меня получилось

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
 case 3:
                    //Перемешиваем колоду
                    var rand = new System.Random();
                    var rndDeck = cards.OrderBy(t => rand.Next().ToString()).ToArray();
 
                    Console.WriteLine("Введите количество игроков:");
                    var numPlayer = Convert.ToInt32(Console.ReadLine());
                    //Связываем количество игроков с картами, которые должны им раздать
                    int[] players = new int[numPlayer];
                    var shuffleDeck3 = cards.OrderBy(t => rand.Next().ToString()).ToArray();
                    System.IO.File.WriteAllLines("input.txt", shuffleDeck3);
                    for (int i = 1; i <= players.Length; i++)
                    {
 
                        //получаем массив всех карт из перемешенной колоды, затем уже переводим массив в список для удобства использования
                        string [] tempDeck = File.ReadAllLines("input.txt");
                        List<string> listOfCards = new List<string>();
                        foreach (string s in tempDeck)
                        {
                            listOfCards.Add(s);
                        }
                        //задаём количество карт для конкретного игрока
                        Console.WriteLine("Введите количество карт для игрока " + i);
                        int cardsPlayer = Convert.ToInt32(Console.ReadLine());
                        string[] tocopy = new string[cardsPlayer];
                        Array.Copy(tempDeck, 0, tocopy, 0, cardsPlayer);
                        System.IO.File.WriteAllLines(i + ".txt", tocopy);
                        //Удаляем количество карт из общей колоды, которые были отданы игроку 1
                        listOfCards.RemoveRange(0, cardsPlayer);
                        System.IO.File.WriteAllLines("input.txt", listOfCards);
                    }
                    break;
для первой программы не думаю что сильно плохо, хотя многое очень кривых моментов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2013, 22:09
Ответы с готовыми решениями:

Разбиение String массива на int и String массивы
так-с. из файла я записал в массив tempmas слова, например &quot;0PlPs1&quot; или &quot;1VKG&quot;. нужно брать слово...

Разбиение жесткого диска под ubuntu
я планировала оставить 20 гб для ubuntu, ситуация обстоит как на картинке 1. хочу 50 гб памяти,...

Чтение из текстового файла и запись в массив. Разбиение массива строк на 4 массива. Split
Необходимо считать данные из файла в 4 массива. внутри файла текст такого типа...

Разбиение одного массива на два массива
Имеется массив с данными A. Необходимо в массив B записать четные значения массива A, а в массив C...

0
06.04.2013, 22:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2013, 22:09
Помогаю со студенческими работами здесь

Разбиение массива
Рассмотрим множество целых чисел от 1 до 3n. Необходимо распределить эти числа в три массива a, b и...

Разбиение массива
Одним весенним днем, идя в университет, Леша нашел массив A. Леша очень любит разбивать массив на...

разбиение массива
Составить программу разбиения массива a длины n таким образом,что бы в массиве lt оказались все...

Разбиение массива
Доброго времени суток, столкнулся с такой проблеммой - есть большой массив 28х21, как разбить его...


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

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

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