Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
#1

Двумерный массив с уникальными элементами в столбце - C++

06.03.2013, 12:58. Просмотров 275. Ответов 6
Метки нет (Все метки)

Добрый день. Помогите пожалуйста решить задачу. Есть двумерный массив 3*5, который генерируется случайным образом. Необходимо сделать, чтобы элементы столбца были уникальными

C++
1
2
3
4
5
6
void magicMatrixInit ( ) { 
        int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < column; j++) 
                magicMatrix [i][j] = valuesForMagicMatrix [rand( ) % 8]; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 12:58     Двумерный массив с уникальными элементами в столбце
Посмотрите здесь:

Двумерный массив с уникальными элементами - C++
Доброго времени суток!.Помогите пожалуйста с этим разобраться ,я понимаю что это надо делать через тип данных bool возвращающий 0-ложь и...

Создать матрицу NxN с уникальными элементами - C++
Как создать неповторимый элементы матрицы NxN ???

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

Двумерный массив. Поиск максимального элемента в выбранном столбце. - C++
Есть матрица ; Нужно сделать поиск максимального значения элемента в выбранном пользователем столбце. #include&lt;stdio.h&gt; ...

заполнить двумерный массив элементами в соответствии с рисунком - C++
массив 6x6 от 1 до 36 1 3 6 10 15 21 2 5 9 14 20 26 4 8 13 19 25 30 7 12 18 24 29 33 11 17 23 28 32 35 16 22 27 31 34 36 ...

Двумерный массив. Удалить строки с нулевыми элементами - C++
Здравствуйте! Нужна функция, которая удаляет строки двумерного массива, в которых содержится хотя бы один нулевой элемент. (Знаю, что...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mysterion777
-74 / 48 / 2
Регистрация: 11.01.2013
Сообщений: 199
06.03.2013, 13:02     Двумерный массив с уникальными элементами в столбце #2
C++
1
2
3
4
5
6
void magicMatrixInit ( ) { 
       
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < column; j++) 
                magicMatrix [i][j] = rand( ) % 10000; 
}
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
06.03.2013, 13:09  [ТС]     Двумерный массив с уникальными элементами в столбце #3
void magicMatrixInit ( ) {

for (int i = 0; i < row; i++)
for (int j = 0; j < column; j++)
magicMatrix [i][j] = rand( ) % 10000;
}
Это решение не подходит. Мне нужно, не свести вероятность появления одинакового символа к минимуму, а вообще исключить такую возможность. И инициализировать можно только элементами:
C++
1
 int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 };
Mysterion777
-74 / 48 / 2
Регистрация: 11.01.2013
Сообщений: 199
06.03.2013, 13:22     Двумерный массив с уникальными элементами в столбце #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
void magicMatrixInit ( ) { 
        int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < column; j++) {
                int k=1,p;
                while (k!=0){
                       k=0;
                       p=valuesForMagicMatrix [rand( ) % 8];
                       for(int l=0;l<column;l++)if(p==magicMatrix[l][i])k++;
                       }
                magicMatrix [i][j] = p;}
}
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
22846 / 14988 / 4308
Регистрация: 22.10.2011
Сообщений: 26,564
Записей в блоге: 4
06.03.2013, 13:53     Двумерный массив с уникальными элементами в столбце #5
Mysterion777, зачем проверять весь столбец, если достаточно проверить только то, что уже было сгенерировано? Кроме того, твоя функция не гарантирует уникальности элементов в столбце:
Двумерный массив с уникальными элементами в столбце

Вот этот вариант работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void magicMatrixInit ( )
{
        int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 };
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < column; j++)
            {
                int p, k;
                do
                {
                    p = valuesForMagicMatrix[rand() % 8];
                    for(k = 0; k < i && p != magicMatrix[k][j]; k++);
                } while(k != i);
                magicMatrix [i][j] = p;
            }
        }
}
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
06.03.2013, 14:04  [ТС]     Двумерный массив с уникальными элементами в столбце #6
Ура, заработало!!! UI, спасибо, с меня пиво)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2013, 20:43     Двумерный массив с уникальными элементами в столбце
Еще ссылки по теме:

Двумерный массив. Найти номера столбцов с отрицательными элементами и отобразить их на экране - C++
Само задание: Ввести двумерный массив E. Найти номера столбцов с отрицательными элементами и отобразить их на экране. Сделать блок-схему...

Двумерный массив. Сумму элементов массива, расположенных между первым и последним отрицательными элементами - C++
приветствую всех. нужна ваша помощь с написанием программы на с++. помогите, пожалуйста, если кому не сложно. Определить массив A (m и...

Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел.(исправить) - C++
Исправить программу: Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел. #include &lt;iostream.h&gt; ...

С++ Дан двумерный массив целых чисел. В каждом столбце найти сумму и количество нечетных чисел. - C++
Дан двумерный массив целых чисел. В каждом столбце найти сумму и количество нечетных чисел.


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

Или воспользуйтесь поиском по форуму:
Mysterion777
-74 / 48 / 2
Регистрация: 11.01.2013
Сообщений: 199
06.03.2013, 20:43     Двумерный массив с уникальными элементами в столбце #7
Цитата Сообщение от UI Посмотреть сообщение
Mysterion777, зачем проверять весь столбец, если достаточно проверить только то, что уже было сгенерировано? Кроме того, твоя функция не гарантирует уникальности элементов в столбце:
Вложение 241069

Вот этот вариант работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void magicMatrixInit ( )
{
        int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 };
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < column; j++)
            {
                int p, k;
                do
                {
                    p = valuesForMagicMatrix[rand() % 8];
                    for(k = 0; k < i && p != magicMatrix[k][j]; k++);
                } while(k != i);
                magicMatrix [i][j] = p;
            }
        }
}
мой тоже работает просто писал быстро сходу убегать надо было просто изменить 1 строчку догадаться можно было
C++
1
2
3
4
5
6
7
8
9
10
11
12
void magicMatrixInit ( ) { 
        int valuesForMagicMatrix [] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 
        for (int i = 0; i < row; i++) 
            for (int j = 0; j < column; j++) {
                int k=1,p;
                while (k!=0){
                       k=0;
                       p=rand( ) % 8;
                       for(int l=0;l<column;l++)if(p==magicMatrix[l][i])k++;
                       }
                magicMatrix [i][j] = p;}
}
Yandex
Объявления
06.03.2013, 20:43     Двумерный массив с уникальными элементами в столбце
Ответ Создать тему
Опции темы

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