Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/511: Рейтинг темы: голосов - 511, средняя оценка - 4.96
3 / 3 / 1
Регистрация: 24.11.2011
Сообщений: 97

Заполнить рандомно массив

05.06.2012, 18:24. Показов 108994. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья помогите ету прогу заполнить масив рандомом а не вручную
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
#include<iostream>
using namespace std;
 
int main()
{
    int *a, max,n,s_max;
    cout<<"\n Vvedite razmer massiva : ";
    cin>>n;
    a = new int[n];
    cout<<"\n Zapolnite massiv : \n";
    for (int i = 0; i < n; i++)
        cin>>a[i];
    max = a[0];
    for (int i = 0; i < n; i++)
        if (a[i]> max)
            max = a[i];
    cout<<"\n Maximalnoe chislo = "<<max<<endl;
    s_max = a[0];
    for (int i = 0; i < n; i++)
        if (a[i]> s_max && a[i]!=s_max)  
           s_max = a[i];
    cout<<"\n Vtoroe maximalnoe chislo = "<<s_max<<endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2012, 18:24
Ответы с готовыми решениями:

Как рандомно заполнить массив с неповторяющимеся значениями?
Дан, допустим, массив из 16 значений, как заполнить его рандомно, но так, что бы ни одно число не повторялось?

Рандомно заполнить двумерный массив одинаковыми символами
Всем привет. Начал изучение С++ на практике, первый язык програмирования, много каши в голове, которую пытаюсь раскидать по тарелкам)) не...

Как рандомно заполнить одномерный массив единицами и нулями?
как рандомно заполнить одномерный массив единицами и нулями???

9
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
05.06.2012, 18:26
Функцию rand() использовать
Code
1
2
for (int i=0; i<n; i++)
   a[i] = rand() % 10;   // случайное число от 0 до 9
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.06.2012, 19:06
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <clocale>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "russian");
    srand ( time(0) );
    int *a, max, n, s_max;
    cout<< "Введите размерность массива: ";
    cin>> n;
    a = new int[n];
    for (int i = 0; i < n; i++)
    {
        a[i] = rand () % 20;
        std::cout<< a[i]<< " ";
    }
    max = s_max = a[0];
    for (int i = 0; i < n; i++)
        if (a[i] > max)
            max = a[i];
    cout<<"\nМаксимальное число равно = "<< max<< endl;
    for (int i = 0; i < n; i++)
        if (a[i] > s_max && a[i] != max)  
           s_max = a[i];
    cout<<"\nВторое максимальное число = "<< s_max<< endl;
    delete []a; // освобождаем память
    return 0;
}
0
 Аватар для bLesk
42 / 42 / 8
Регистрация: 24.11.2009
Сообщений: 165
05.06.2012, 19:35
или так
C++
1
2
3
4
5
6
7
8
9
#include <stdlib>
int main()
{
...
randomize();
for (int i = 0 ; i < n ; i++)
    a[i]=random(100)-50; // случайное число [-50;50];  
...
}
и да, обязательно нужно добавить
C++
1
delete []a;
перед return
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.06.2012, 22:27
Цитата Сообщение от bLesk Посмотреть сообщение
или так
C++
1
randomize();
Это чисто VB надбавка. Я же предлагаю решение, которое скомпилируется на всех компиляторах.

Добавлено через 1 минуту
И библиотеки stdlib нету. Есть либо stdlib.h либо cstdlib.
0
 Аватар для bLesk
42 / 42 / 8
Регистрация: 24.11.2009
Сообщений: 165
05.06.2012, 22:38
Цитата Сообщение от MrGluck Посмотреть сообщение
Это чисто VB надбавка. Я же предлагаю решение, которое скомпилируется на всех компиляторах.
Добавлено через 1 минуту
И библиотеки stdlib нету. Есть либо stdlib.h либо cstdlib.
я компилировал в Borland c++ =)
и ваш способ не коим образом не оспаривал, просто предложил альтернативу
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
06.06.2012, 00:11
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
class BoundedRandom {
    int low;
    int high;
public:
    BoundedRandom(int l, int h) : low(l), high(h) {}
    int operator () () { return rand() % (high - low + 1) + low; }
};
 
int main() {
    int * arr;
    size_t size;
    
    std::cout << "Number of elements: ";
    std::cin >> size;
    
    arr = new int [ size ];
    srand(time(NULL));
    std::generate_n(arr, size, BoundedRandom(0, 100));
    
    std::cout << "Array:" << std::endl;
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\nMin: " << *std::min_element(arr, arr + size) << " Max: " << *std::max_element(arr, arr + size) << std::endl;
    
    delete [] arr;
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
06.06.2012, 00:22
Цитата Сообщение от easybudda Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
class BoundedRandom {
    int low;
    int high;
public:
    BoundedRandom(int l, int h) : low(l), high(h) {}
    int operator () () { return rand() % (high - low + 1) + low; }
};
 
int main() {
    int * arr;
    size_t size;
    
    std::cout << "Number of elements: ";
    std::cin >> size;
    
    arr = new int [ size ];
    srand(time(NULL));
    std::generate_n(arr, size, BoundedRandom(0, 100));
    
    std::cout << "Array:" << std::endl;
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << "\nMin: " << *std::min_element(arr, arr + size) << " Max: " << *std::max_element(arr, arr + size) << std::endl;
    
    delete [] arr;
    return 0;
}
Вроде требовалось найти максимум и второй максимум (среди элементов, не включающих первый).
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
06.06.2012, 00:37
Цитата Сообщение от MrGluck Посмотреть сообщение
требовалось найти максимум и второй максимум
А, ну да... Сейчас угадаю: и сортировать нельзя?
За один проход:
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <cstdlib>
#include <ctime>
 
class BoundedRandom {
    int low;
    int high;
public:
    BoundedRandom(int l, int h) : low(l), high(h) {}
    int operator () () { return rand() % (high - low + 1) + low; }
};
 
int main() {
    int * arr;
    size_t size;
    
    std::cout << "Number of elements: ";
    std::cin >> size;
    if ( size < 3 ) {
        std::cout << "Need 3 or more elements." << std::endl;
        return 1;
    }
    
    arr = new int [ size ];
    srand(time(NULL));
    std::generate_n(arr, size, BoundedRandom(0, 100));
    
    std::cout << "Array:" << std::endl;
    std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
    int firstMax = std::max(arr[0], arr[1]);
    int secondMax = std::min(arr[0], arr[1]);
    for ( size_t i = 2; i < size; ++i ) {
        if ( arr[i] > firstMax ) {
            secondMax = firstMax;
            firstMax = arr[i];
        }
        else if ( arr[i] > secondMax ) {
            secondMax = arr[i];
        }
    }
    std::cout << "\nFirst max: " << firstMax << ", second max: " << secondMax << std::endl;
    
    delete [] arr;
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
06.06.2012, 01:05
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
 
int main()
{
    const std::size_t N = 20;
    int A[N];
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(0, 99);
    std::generate(A, A + N, [&uid, &gen] {return uid(gen); } );
    std::copy(A, A + N, std::ostream_iterator<int> (std::cout, " ") );
    int max = *std::max_element(A, A + N);
    int max2 = *std::max_element(A, A + N, [max](const int i, const int j) {return i < j && j != max; } );
    std::cout<< "\nFirst max: "<< max<< "\nSecond max: "<< max2<< std::endl;
    return 0;
}
http://liveworkspace.org/code/... ad18daab0e
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2012, 01:05
Помогаю со студенческими работами здесь

Заполнить рандомно массив и все отрицательные элементы отправить в конец
В массиве A=(a1, а2, ..., аn) все отрицательные элементы отправить в «хвост» массива. ( Это задание) Вот сам код. //...

Заполнить рандомно матрицу с выделением динамической памяти
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; #include &lt;iostream&gt; ...

Как рандомно заполнить имя пользователя и пароль?
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &quot;string.h&quot; #include &lt;locale&gt; using namespace std; #define N 10; ...

Как рандомно заполнить квадратную матрицу звездочками?
Мне нужно на дошке 5 на 5 рандомно поставить 5 звездочек. Как это можна сделать? Я нашла функцию rand(). Но как сделать не знаю ....

Как рандомно заполнить вектор? Не могу найти ошибку
Вот код, в консоли выдаёт &quot;Не является внутренней или внешней командой&quot; #include &lt;iostream&gt; #include &lt;vector&gt; using...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru