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

Заполнение массива числами от 1 до 25 без повторений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Адресная арифметика http://www.cyberforum.ru/cpp-beginners/thread157322.html
Народ!!! Пожайлуста просвятите! Мне важно понять принцип хранения переменных различных типов данных в языках С++ и С#(например как в ячейках памяти будет храниться float a = 1234,33333)/ Зарание огромное спасибо
C++ Изменение указателя - аргумента функции Привет всем! Может я совсем тупой, но не могу понять почему не работает такой пример: #include <iostream> void func (char * ptr) { ptr = new char ; ptr = '1'; http://www.cyberforum.ru/cpp-beginners/thread157311.html
C++ Как написать макрос - модуль числа...
Помогите написать макрос на с++, возвращающий модуль числа... Добавлено через 4 минуты Нашёл..
C++ Изменение значения статической переменной
не дает =\ static char text; text = ""; error: expression must be a modifiable lvalue это же не конст, а просто статик, в pawn"е часто пользовался static и ок всё было
C++ Часы в псевдографике http://www.cyberforum.ru/cpp-beginners/thread157219.html
доброго времени суток. задание заключается в написании программы, отображающую на экране текущее время в виде циферблата с секундной,минутной и часовой стрелками(разных цветов). и сохранять картинку в файле по желанию пользователя. заранее благодарен.
C++ Модификация объекта string через ссылку и указатель Создайте две функции: первая должна получать аргумент типа string*, вторая - srting&. Каждая функция должна изменять объект string своим способом. В функции main сопсно вызываем и выводим изменёные строки. #include <iostream> #include <string> void ukazatel(std::string* p) { } подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.08.2010, 16:49     Заполнение массива числами от 1 до 25 без повторений
Я вот до такого додумался:
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
#include <iostream>
#include <ctime>
#include <vector>
#include <algorithm>
#include <iomanip>
 
int main()
{
    srand(static_cast<size_t>(time(NULL)));
    const size_t ROW = 5;
    const size_t COL = 5;
    //Наш массив
    size_t arr[ROW][COL];
    //Создаем вектор, который будет хранить "случайные" значения
    std::vector<size_t> rnd(ROW * COL);
    size_t var = 1;
    //... и заполняем его
    std::generate(rnd.begin(), rnd.end(), [&]() { return var++; });
    for(size_t i = 0; i < ROW; ++i)
        for(size_t j = 0; j < COL; ++j)
            if(i * j == (ROW - 1) * (COL - 1)) // Если последний элемент
                arr[i][j] = *(rnd.begin());
            else
            {
                std::vector<size_t>::const_iterator it = rnd.begin() + rand() % rnd.size(); // Выбираем произвольный элемент из вектора
                arr[i][j] = *it;
                rnd.erase(it); // И удаляем его
            }
    for(size_t i = 0; i < ROW; ++i, std::cout << std::endl)
        for(size_t j = 0; j < COL; ++j)
            std::cout << std::left << std::setw(7) << arr[i][j];
    system("pause");
    return EXIT_SUCCESS;
}
Добавлено через 4 минуты
Цитата Сообщение от RoY_Mu$T@nG Посмотреть сообщение
а можно же по идее сделать цикл, в котором проверяются все предыдущие числа, и если такое число уже есть, то всё сначала...или нет?
Такой цикл теоретически может длиться бесконечно.
 
Текущее время: 09:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru