С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
1

Как сделать так, чтобы число не повторялось?

15.12.2016, 22:16. Показов 6757. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос следующий. В определенном диапазоне (например от 0 до 9) лежат числа, нужно сделать так, чтобы весь диапазон был выведен на экран, но ни одно из чисел не повторяло друг друга.
У меня не получается это реализовать, вроде использую srand(time(NULL)); Но числа повторяются.

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
49
50
51
52
53
54
#include <iostream>
#include <iomanip> // Позволяет выводить числа после запятой.
#include <cmath> // Математическая библиотека.
#include <cstdlib> // 
#include <ctime>    // время.
#include <cstring> // строки.
 
using namespace std;
 
    int main()
    {
 
    setlocale(LC_ALL,"Russian");
 
 
 
                                                                //  double a=0.0000000000000000000000000000000000000012;//ну и так далее ))))
                                                                //  cout<< fixed << setprecision(50)<<a << endl;
    
start:
    int N;
 
    char zna[] = "Введите диапазон значений:";
    char che[] = "Случайное число в диапазоне от 0 до  ";
    char wat[] = "Хотите повторить? Y/N - ";
    char A;
 
    cout << zna;
    cin >> N;
    
    srand(time(NULL));
        for(int i; i<N; i++)
        {
            cout << che << N << " = " << rand()%N << endl;
        }
 
        cout << wat;
        cin >> A;
switch(A)
{
    case 'Y':
        goto start;
    break;
    case 'y':
        goto start;
    break;
}
 
 
 
    return 0;
 
 
    }

За goto сильно каюсь =)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2016, 22:16
Ответы с готовыми решениями:

Разбить число N на K элементов (не меньше, не больше) и записать так, чтобы множество не повторялось
Здравствуйте, задача вот в чем: требуется разбить число N на K элементов (не меньше, не больше) и...

Как сделать так чтобы рандомное число не повторялось в Lazarus?
Как сделать так чтобы при нажатии на кнопку генерировалось рандомно (число в диапазоне) и при...

Как сделать так, чтобы видео в "mediaElement" постоянно повторялось?
Как сделать так, чтобы видео в &quot;mediaElement&quot; постоянно повторялось? private void...

Как сделать, чтобы изображение (Не фоновое!) повторялось по горизонтали?
Как сделать, чтобы изображение (Не фоновое!!!) повторялось по горизонтали?

5
27 / 27 / 37
Регистрация: 11.09.2014
Сообщений: 68
15.12.2016, 23:23 2
Лучший ответ Сообщение было отмечено Photofenix как решение

Решение

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
49
50
51
52
53
54
55
#include <iostream>
#include <iomanip> // Позволяет выводить числа после запятой.
#include <cmath> // Математическая библиотека.
#include <cstdlib> //
#include <ctime>    // время.
#include <cstring> // строки.
 
using namespace std;
 
int main()
{
     setlocale(LC_ALL,"Russian");
    srand(time(NULL));
    //  double a=0.0000000000000000000000000000000000000012;//ну и так далее ))))
    //  cout<< fixed << setprecision(50)<<a << endl;
    
start:
    int N;
    char zna[] = "Введите диапазон значений:";
    char che[] = "Случайное число в диапазоне от 0 до  ";
    char wat[] = "Хотите повторить? Y/N - ";
    char A;
    
    
    cout << zna;
    cin >> N;
    int *arr = new int[N];
    int *arrX = new int[N];
    int count = 0;
    for(int i=0; i<N; i++)
    {
        a: arr[i]=1+rand()%N;
        for (int j=0; j<i; j++) {
            if (arr[j]==arr[i]) {
                goto a;
            }
        }
        cout << arr[i] << " ";
    }
    
    cout << endl << wat;
    cin >> A;
    switch(A)
    {
        case 'Y':
            goto start;
            break;
        case 'y':
            goto start;
            break;
    }
    delete [] arr;
    delete [] arrX;
    return 0;
}
1
47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
16.12.2016, 02:20 3
Ну так запишите диапозн полностью и перемешайтк его, рандом шафл в помощь http://www.cplusplus.com/refer... m_shuffle/
1
Вездепух
Эксперт CЭксперт С++
12794 / 6671 / 1795
Регистрация: 18.10.2014
Сообщений: 16,890
16.12.2016, 05:31 4
Цитата Сообщение от Photofenix Посмотреть сообщение
В определенном диапазоне (например от 0 до 9) лежат числа, нужно сделать так, чтобы весь диапазон был выведен на экран, но ни одно из чисел не повторяло друг друга.
Так а в чем проблема просто взять и вывести все числа по порядку от 0 до 9?

C++
1
2
for (int i = 0; i < 9; ++i)
  std::cout << i;
Весь диапазон выведен? Выведен. Числа повтрояются? Нет, не повторяются.

Цитата Сообщение от Photofenix Посмотреть сообщение
вроде использую srand(time(NULL));
Откуда тут вообще взялось srand? Какое отношение ваша задача имеет к случайным числам?
1
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.12.2016, 13:01 5
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
<
<=
/misc fix
1
Заблокирован
16.12.2016, 17:12 6
сделать число ключом массива. Есть такой алгоритмик. Самый быстрый кстати
0
16.12.2016, 17:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2016, 17:12
Помогаю со студенческими работами здесь

Как сделать так, чтобы выводилось не только число, но и $row[name]?
Код: if(isset($_POST)) { $price = &quot;SELECT price,name FROM products WHERE prod_id='1'&quot;; ...

Как сделать так чтобы число выводилось десятичной дробью
Как сделать так чтобы число выводилось десятичной дробью к примеру int x; x=1/4; и сдесь код...

Как сделать так чтобы кнопка прибавляла к числу другое число?
У меня есть код: from tkinter import * wnw = Tk() #=========================== Num = IntVar()...

Как сделать так, чтобы в массив вводилось, рэндомно, НЕ целочисленное число????
Например если есть массив из 100 элементов... а надо чтобы вводились именно не целочисленные числа....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru