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

Заполнить массив случайными неповторяющимися значениями - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
lancoma
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 11
30.10.2012, 21:40     Заполнить массив случайными неповторяющимися значениями #1
Уважаемые программисты, я новенькая в C++. Помогите, пожалуйста, с домашкой по одноразм. массивам. Нужно сделать прогр., кот. заполняла бы массив, сост. из десяти эл., значениями от одного до десяти в случайном виде (беспоядочном), причем, чтобы ни один эл. не повторялся.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 21:40     Заполнить массив случайными неповторяющимися значениями
Посмотрите здесь:

C++ Объявить массив целых чисел и заполнить его случайными значениями.
C++ Объявить массив целых чисел и заполнить его случайными значениями
C++ Заполнить массив случайными значениями
Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию C++
C++ Заполнить массив случайными значениями, лежащими в диапазоне от 50 до 100
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.10.2012, 21:57     Заполнить массив случайными неповторяющимися значениями #2
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
#include <iostream>
#include <ctime>
 
int prov(int lim,int mas[],int digit)
{
    int i;
    for(i=0;i<lim;i++)
        if(mas[i]==digit)
            return 1;
    return 0;
}
 
int main()
{
    int mas[10];
    int i,j;
    srand(time(0));
    for(i=0;i<10;i++)
    {
        do
        {
            mas[i]=1+rand()%10;
        }
        while(prov(i,mas,mas[i]));
    }
}
lancoma
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 11
30.10.2012, 22:08  [ТС]     Заполнить массив случайными неповторяющимися значениями #3
ZaMaZaN4iK, ой, спасибо вам огромное! Только вот знаете, мы еще ни файл <ctime>, ни digit, ни prov не проходили. Нельзя ли добиться того же эффекта более простым (более примитивно написанным) способом?
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.10.2012, 22:13     Заполнить массив случайными неповторяющимися значениями #4
Добится получения случайных(ой, извините, псевдослучайных) чисел - это самый простой способ.
Честно, это и так примитив.Могу закоментировать прогу.Нужно?
lancoma
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 11
30.10.2012, 22:36  [ТС]     Заполнить массив случайными неповторяющимися значениями #5
Да, конечно, нужно. Если вам не будет трудно. Важно, чтобы они не повторялись.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
30.10.2012, 22:58     Заполнить массив случайными неповторяющимися значениями #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ctime>
#include <iostream>
using namespace std;
int main()
{
    const int k=10;
    int m[k];
    srand (time(NULL));
    for(int i=0; i<k; i++)
    {
        a: m[i]=1+rand()%k;
        for (int j=0; j<i; j++)
            if (m[j]==m[i]) goto a; 
    }
    for(int i=0; i<k; i++)
    cout << m[i]<<" ";
    cin.get();
    return 0;
}
lancoma
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 11
30.10.2012, 23:03  [ТС]     Заполнить массив случайными неповторяющимися значениями #7
vasiliy21, спасибо большое! если бы еще без time... мы его еще не проходили
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
30.10.2012, 23:06     Заполнить массив случайными неповторяющимися значениями #8
Без <ctime> каждый раз при запуске программы будет генерироваться одинаковая последовательность чисел, но программа будет работать!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    const int k=10;
    int m[k];
    for(int i=0; i<k; i++)
    {
        a: m[i]=1+rand()%k;
        for (int j=0; j<i; j++)
            if (m[j]==m[i]) goto a; 
    }
    for(int i=0; i<k; i++)
    cout << m[i]<<" ";
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 23:13     Заполнить массив случайными неповторяющимися значениями
Еще ссылки по теме:

C++ Как создать динамический трехмерный массив и заполнить его случайными значениями?
Заполнить массив случайными значениями C++
Объявить массив из 20 элементов и заполнить его случайными значениями от -6 до 15 C++

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

Или воспользуйтесь поиском по форуму:
lancoma
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 11
01.11.2012, 23:13  [ТС]     Заполнить массив случайными неповторяющимися значениями #9
vasiliy21, спасибо большое!
Yandex
Объявления
01.11.2012, 23:13     Заполнить массив случайными неповторяющимися значениями
Ответ Создать тему
Опции темы

Текущее время: 15:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru