Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
#1

создать стек с числами в диапазоне от -50 до +50 - C++

15.05.2013, 13:02. Просмотров 1960. Ответов 16
Метки нет (Все метки)

создать стек с числами в диапазоне от -50 до +50
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос создать стек с числами в диапазоне от -50 до +50 (C++):

Заполнить стек случайными числами - C++
Здравствуйте, форумчане. Прошу помощи в исправлении задачи. У меня есть программа, которая действует так: читает символ с клавиатуры...

Заполнить стек числами и вывести его - C++
Здравствуйте, нужна помощь в написании программы: «Создать стек, введя число 1. Дальнейшее заполнение стека производить 5 числами A=i^2....

Заполнить массив случайными числами в диапазоне - C++
Помогите, пожалуйста, найти ошибку :( Нужно заполнить двумерный массив случайными простыми числами, которые могут повторяться. ...

Поровну заполнить массив числами в диапазоне 0-1 - C++
Нужно чтобы в массиве нулей было столько же сколько и единиц, причем порядок должен быть случайным

заполнение матрицы случайными числами в установленном диапазоне - C++

Заполнение массива случайными числами в заданном диапазоне - C++
Не могу заполнить массив данных типа float в диапазоне от -10 до 10.. Как это сделать ?

16
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
15.05.2013, 13:13 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <stack>
#include <random>
#include <chrono>
 
using namespace std;
 
int main()
{
    default_random_engine gen(chrono::system_clock::now().time_since_epoch().count());
    uniform_real_distribution <double> distribution(-50, 50);
 
    stack<double> st;
 
    for (size_t i = 0; i != 100; i++)
        st.push( distribution(gen) );
    cout << st.size();
    return 0;
}
2
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 13:17  [ТС] #3
Цитата Сообщение от Olivеr Посмотреть сообщение
#include <chrono>
а что это за библиотека такая?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13564 / 7715 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
15.05.2013, 13:20 #4
chrono::system_clock::now().time_since_epoch().count()
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 13:23  [ТС] #5
что-то ругается на #include <chrono>

Добавлено через 41 секунду
#include <random> заменил на #include <stdlib.h>
0
Croessmah
Ушел
Эксперт CЭксперт С++
13564 / 7715 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
15.05.2013, 13:28 #6
Цитата Сообщение от shilovec5377 Посмотреть сообщение
что-то ругается на #include <chrono>
#include <random> заменил на #include <stdlib.h>
http://www.cplusplus.com/reference/random/default_random_engine/
http://www.cplusplus.com/reference/chrono/
читаем внимательно.

Кликните здесь для просмотра всего текста
C++11
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 13:34  [ТС] #7
дело в том, что у меня с++ (6)
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
15.05.2013, 13:38 #8
shilovec5377, попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stack>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(time(0));
 
    stack<double> st;
    
    double max = 50.0, min = -50.0;
    
    for (size_t i = 0; i != 100; i++)
        st.push( (max - min) * ( (double)rand() / (double)RAND_MAX ) + min );
        
    cout << st.size();
    return 0;
}
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 13:45  [ТС] #9
а как можно вывести весь стек, а не его размер?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13564 / 7715 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
15.05.2013, 13:53 #10
Еще как вариант:
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 <stack>
#include <cstdlib>
#include <ctime>
 
class MyRand{
public:
    MyRand(int Min,int Max):mMin(min(Min,Max)),mMax(max(Min,Max)){
        srand(static_cast<unsigned>(time(0)));
    }
    int operator()(){
        return rand()%(mMax-mMin+1)+mMin;
    }
private:
    int mMin;
    int mMax;
};
 
 
int main(){
    std::stack<int> st;
    MyRand gen(-50,50);
    int count=100;
    for(int i=0;i<count;++i)
        st.push(gen());
    std::cout << st.size()<<std::endl<<std::endl;
    while(!st.empty()){
        std::cout<<st.top()<<std::endl;
        st.pop();
    }
    return 0;
}
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 13:59  [ТС] #11
Ругается:
C++
1
2
error C2065: 'min' : undeclared identifier
              error C2065: 'max' : undeclared identifier
в этой строке:
C++
1
MyRand(int Min,int Max):mMin(min(Min,Max)),mMax(max(Min,Max))
0
Croessmah
Ушел
Эксперт CЭксперт С++
13564 / 7715 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
15.05.2013, 14:02 #12
std::min
std::max
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 14:06  [ТС] #13
Цитата Сообщение от Croessmah Посмотреть сообщение
std::min
std::max
а куда именно его вставить?
пробую в
C++
1
MyRand(int Min,int Max):mMin(min(Min,Max)),mMax(max(Min,Max))
, не хочет
0
Croessmah
Ушел
Эксперт CЭксперт С++
13564 / 7715 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
15.05.2013, 14:09 #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
class MyRand{
public:
    MyRand(int Min,int Max):mMin(std::min(Min,Max)),mMax(std::max(Min,Max)){
        srand(static_cast<unsigned>(time(0)));
    }
    int operator()(){
        return rand()%(mMax-mMin+1)+mMin;
    }
private:
    int mMin;
    int mMax;
};
1
shilovec5377
29 / 54 / 1
Регистрация: 26.05.2011
Сообщений: 755
15.05.2013, 14:15  [ТС] #15
не хочет:
error C2039: 'min' : is not a member of 'std'
error C2065: 'min' : undeclared identifier
error C2039: 'max' : is not a member of 'std'
error C2065: 'max' : undeclared identifier
0
15.05.2013, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 14:15
Привет! Вот еще темы с ответами:

Заполнить массив нечётными числами в диапазоне от -10 до 30 по возрастанию - C++
Заполнить массив нечётными числами в диапазоне от -10 до 30 по возрастанию. код С++ : #include &lt;iostream&gt; #include &lt;ctime&gt; ...

Отобразить каждое число в диапазоне, определенном двумя числами - C++
Подскажите, пожалуйста, как изменить код, чтобы введенное число k, не входило в вывод. d не входит вывод, как и нужно. #include...

Заполнить одномерный динамический массив случайными числами в заданном диапазоне - C++
как заполнить одномерный динамический массив случайными числами от -100 до +100 вот вариант от 1 до 100: srand(time(NULL)); ...

Заполнить массив заданного размера нечётными числами в указанном диапазоне - C++
Заполнить массив из 50-ти элементов нечётными числами от 1 до 99. нужно использовать остаток от деления, что бы проверить число на четность.


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

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

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