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

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

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

Отсеять всех людей, кроме 4 рандомных - C++

02.07.2015, 13:41. Просмотров 243. Ответов 7
Метки нет (Все метки)

Не подскажите как написать программу в которую, вводишь число человек и нужно отсеять всех кроме 4 рандомных. Допустим вводишь 7 человек, а программа отсеивает 3, 1, 7, и так же с любым количеством человек
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2015, 13:41     Отсеять всех людей, кроме 4 рандомных
Посмотрите здесь:

Замена всех элементов массива, кроме крайних на полусумму соседей C++
Напишите процедуру вывода всех холостых людей и подсчитайте количество женатых. C++
C++ Все элементы, кроме первого, заменить средним арифметическим всех предыдущих
Программа не работает на всех компах кроме моего C++
отнять последний столбец из всех кроме последнего C++
C++ Класс Human. Выбрать всех людей, старше 30 лет и с определенным индексом массы
C++ Как запретить ввод в строку всех символов, кроме 0, 1 и пробела?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,384
02.07.2015, 13:43     Отсеять всех людей, кроме 4 рандомных #2
fr00kt, перемешиваете вектор чисел и выдергиваете нужно количество.
fr00kt
0 / 0 / 0
Регистрация: 02.07.2015
Сообщений: 5
02.07.2015, 13:47  [ТС]     Отсеять всех людей, кроме 4 рандомных #3
Не подскажите как это сделать в коде?
S_el
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,384
02.07.2015, 13:53     Отсеять всех людей, кроме 4 рандомных #4
Цитата Сообщение от fr00kt Посмотреть сообщение
Не подскажите как это сделать в коде?
подскажу,если вы покажете свои наработки.
fr00kt
0 / 0 / 0
Регистрация: 02.07.2015
Сообщений: 5
02.07.2015, 14:13  [ТС]     Отсеять всех людей, кроме 4 рандомных #5
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 <cstdlib> // для system
#include <vector> // подключаем модель Векторов
#define N 10;
using namespace std;
int main() 
{ 
    setlocale(LC_ALL, "Russian");   
 
    int size;
    cout << "Введите количество человек:";
    cin >> size;
 
    //int *list = new int [size];
 
     vector<int> myVector1(size+1);
    // вывод элементов вектора на экран
    cout << "Входной массив: ";
    for(int i = 1; i < myVector1.size(); i++) {
        myVector1[i] = i;
        cout << myVector1[i] << ' ';
    }
    cout << endl;
    system("pause"); // Только для тех, у кого MS Visual Studio
    return 0; 
}
S_el
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,384
02.07.2015, 14:54     Отсеять всех людей, кроме 4 рандомных #6
fr00kt, в принципе не так плохо.Переделал на основе вашего кода и примера отсюда:
http://www.cplusplus.com/reference/algorithm/shuffle/
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
#include <iostream>
#include <cstdlib> // для system
#include <algorithm>    // std::shuffle
#include <random>       // std::default_random_engine
#include <chrono>       // std::chrono::system_clock
//не модель,а заголовочный файл
#include <vector> // подключаем модель Векторов
#define N 10;//<-зачем
using namespace std;
int main() 
{ 
    setlocale(LC_ALL, "Russian");   
    size_t size;
    cout << "Введите количество человек:\n";
    cin >> size;
 
    vector<int> myVec(size);
//индексирование с 0
    for(int i = 0; i < myVec.size(); i++)
        myVec[i] = i+1;
    cout << "Входной вектор: \n";   
    for(auto &i : myVec)
    cout<< i<<"\t"; 
    
    auto seed = std::chrono::system_clock::now().time_since_epoch().count();
    shuffle (myVec.begin(), myVec.end(), std::default_random_engine(seed));
    cout << "\nПреобразованный вектор: \n";   
    for(auto &i : myVec)
    cout<< i<<"\t";  
    //работает, только если система распознает команду pause
    system("pause"); // Только для тех, у кого MS Visual Studio
    return 0; 
}
fr00kt
0 / 0 / 0
Регистрация: 02.07.2015
Сообщений: 5
02.07.2015, 15:37  [ТС]     Отсеять всех людей, кроме 4 рандомных #7
Спасибо, не подскажите как вывести только, допустим, первые 4 числа из вектора
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2015, 15:55     Отсеять всех людей, кроме 4 рандомных
Еще ссылки по теме:

Сформировать массив путем переноса всех чисел кроме последнего положительного C++
Цикл: Найти среднее арифметическое всех чисел а1,…,an, кроме ai. C++
C++ Вывод всех символов слова, кроме первого
C++ Опрос папки и удаление из неё всех файлов кроме заданного расширения
Написать программу, которая предложит схему прохождения всех людей через мост за наименьшее время C++

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

Или воспользуйтесь поиском по форуму:
S_el
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,384
02.07.2015, 15:55     Отсеять всех людей, кроме 4 рандомных #8
fr00kt, это совсем просто:
C++
1
2
3
4
5
6
7
8
9
   #include <iostream>
    #include <vector>
     
    int main() {
        std::vector<int> vec = {1,2,3,4,5,6};
        for(size_t i=0;i<4;i++)
        std::cout<<vec[i]<<std::endl;
        return 0;
    }
Yandex
Объявления
02.07.2015, 15:55     Отсеять всех людей, кроме 4 рандомных
Ответ Создать тему
Опции темы

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