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

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

Войти
Регистрация
Восстановить пароль
 
galayko
5 / 5 / 2
Регистрация: 20.10.2013
Сообщений: 68
#1

Генерация случайного четырехзначного числа без цифр, больших 7 и 0 - C++

04.05.2014, 11:37. Просмотров 423. Ответов 3
Метки нет (Все метки)

Нужно сгенерировать случайное четырехзначные число без цифр, больших 7 и 0.
Пишу вот такой код:
Но он ничего не выводится. Зацикливается. Но, когда убираю условие про 0 (в 19 строке), то выводит 3 числа, всегда одинаковых. Как-будто дальше число с цифрой, больше 7, и опять зацикливается.
Возникают вопросы:
1) Почему зацикливается?
2) Как сделать, чтобы числа всегда были разные?

C++ (Qt)
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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    int guess,a,f=0;
    for(;;)
    {
    do
    {
        guess = rand() % 8998+1001;
        a = guess;
        while(a>0&&!f)
        {
            f=0;
            if(a%10>7||) f=1;
            a = a/10;
 
        }
    }
    while (f); cout << guess << endl;}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 11:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация случайного четырехзначного числа без цифр, больших 7 и 0 (C++):

Генерация случайного числа, максимально случайного - C++
Добрый день, задался вопросом как получить случайное число, но не псевдо-случайное по идее функции rand() и srand(time(NULL))...

Генерация случайного числа - C++
Сори за вопрос может уже обсуждался не раз, но всё же возник. Как правильно сгенерировать число от 0 до 1 и какой тип данных лучше...

Генерация случайного числа - C++
Проблемма такова: в программе необходимо получить несколько чисел, от 1 до 255 (или max будет другим -- пока не важно). Стандартные...

Генерация случайного простого числа - C++
Добрый вечер всем! У меня такая проблемма. Необходимо чтобы сгенерировалось 2 простых случайных числа. Для этого я написал функцию с...

Генерация пятизначного случайного числа - C++
Нужно сгенерировать случайное число из пяти цифр и записать ее в переменную типа string. Пытаюсь 5 генерировать цифры в цикле, а как их...

Генерация случайного числа каждую секунду - C++
Нужно каждую секунду генерировать случайное число. Ниже мой код, который выполняет задачу, но функция слип останавливает весь процесс и в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
04.05.2014, 11:43 #2
C++
1
if(a%10>7||)
что это?
galayko
5 / 5 / 2
Регистрация: 20.10.2013
Сообщений: 68
04.05.2014, 12:09  [ТС] #3
Забыл скопировать)
Там условие if(a%10>7||a%10==0)
S_el
2095 / 1602 / 308
Регистрация: 15.12.2013
Сообщений: 6,442
04.05.2014, 12:20 #4
Цитата Сообщение от galayko Посмотреть сообщение
1) Почему зацикливается?
У вас бесконечный цикл.

Можете попробовать так:
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
#include <iostream>
#include <ctime>
#include <cmath>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int guess,s;
    for(int j=0;j<20;j++)
    {
        guess=0;
        for(int i=0;i<3;i++)
        {
        s=(7.*rand())/RAND_MAX;
        guess = guess+pow(10,i)*s;
        }
        s=1+(6.*rand())/RAND_MAX;
        guess=guess+pow(10,3)*s;
 
        cout << guess << endl;
  
    }
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2014, 12:20
Привет! Вот еще темы с ответами:

Генерация случайного числа с плавающей чточкой - C++
Добрый день. Подскажите как генерировать случайное число типа float или double. Обычно использую rand(), но она подходит только для целых,...

Запись текста и генерация случайного числа - C++
Собственно задача такая: записать строки с рандомными числовым значением в некоторое количество создаваймых файлов. Файлы создаются без...

Генерация случайного числа при запуске программы - C++
Доброго всем времени суток. В данный момент потихоньку осваиваю C++ и столкнулся с такой вещью, что при использовании srand( (time(0) )...

Генерация случайного числа больше нуля, но меньше единицы - C++
Всем привет. Подскажите, как можно генерировать псевдослучайное число больше нуля, но меньше единицы. При этом количество цифр после...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.05.2014, 12:20
Ответ Создать тему
Опции темы

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