Помогите закончить код в Dev-C++

программирование программы C++

Не получается чтобы программа выдавала 30 рандомных чисел и чтобы они не повторялись в интервале 0-50, все написал,а вот чтобы числа не повторялись в данном промежутке не получается сделать!
Вот код который я написал :

#include <iostream>

using namespace std;
int main ()

{
srand(time(0));
int p[30];
int max, min;
int i,g;
max=0;
min=50;


for(i=1;i<31;i++)
{

p[i] = i;
while(p[i]==i){

p[i]=rand()%50+1;}
if(true){
cout<<"cislo "<<i<< "= "<<p[i]<<endl;
}}

for(i=1;i<31;i++){

if (max<p[i]){ max=p[i];}
if (min>p[i]) min=p[i] ;}

cout<<"MAX cislo je "<<max<<"\n";
cout<<"MIN cislo je "<<min<<"\n";

system ("pause");
return 0;
}
Ответы:
Самый простой способ генерации не повторяющихся чисел, это завести массив, в твоем случае - это массив из 50 чисел. Затем сделать shuffle (т.е. перемешать их) и взять первые 30.
Другой способ - это использовать std::set (множество), перед вставкой нужно попробовать найти элемент, если он есть, значит - это повтор.
http://www.cplusplus.com/reference/set/set/insert/ - вставляем новый элемент
http://www.cplusplus.com/reference/set/set/find/  - ищем, есть ли такой элемент в множестве


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.