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

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

Восстановить пароль Регистрация
 
galayko
5 / 5 / 2
Регистрация: 20.10.2013
Сообщений: 68
04.05.2014, 11:37     Генерация случайного четырехзначного числа без цифр, больших 7 и 0 #1
Нужно сгенерировать случайное четырехзначные число без цифр, больших 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++ Генерация случайного числа, максимально случайного
генерация случайного простого числа C++
Запись текста и генерация случайного числа C++
Генерация случайного числа каждую секунду C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11814 / 6793 / 769
Регистрация: 27.09.2012
Сообщений: 16,861
Записей в блоге: 2
Завершенные тесты: 1
04.05.2014, 11:43     Генерация случайного четырехзначного числа без цифр, больших 7 и 0 #2
C++
1
if(a%10>7||)
что это?
galayko
5 / 5 / 2
Регистрация: 20.10.2013
Сообщений: 68
04.05.2014, 12:09  [ТС]     Генерация случайного четырехзначного числа без цифр, больших 7 и 0 #3
Забыл скопировать)
Там условие if(a%10>7||a%10==0)
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,912
04.05.2014, 12:20     Генерация случайного четырехзначного числа без цифр, больших 7 и 0 #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;
}
Yandex
Объявления
04.05.2014, 12:20     Генерация случайного четырехзначного числа без цифр, больших 7 и 0
Ответ Создать тему
Опции темы

Текущее время: 13:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru