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

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

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

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

04.05.2014, 11:37. Просмотров 385. Ответов 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++ Генерация случайного числа, максимально случайного
Генерация случайного простого числа C++
Запись текста и генерация случайного числа C++
Генерация случайного числа больше нуля, но меньше единицы C++
Генерация случайного числа каждую секунду C++
Генерация случайного числа с плавающей чточкой C++
C++ Генерация случайного числа
Генерация пятизначного случайного числа C++
C++ Найти сумму и произведение цифр четырехзначного числа
Определить, равна ли сумма первых двух цифр четырехзначного числа сумме двух последних цифр C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12882 / 7268 / 810
Регистрация: 27.09.2012
Сообщений: 17,959
Записей в блоге: 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
2088 / 1595 / 305
Регистрация: 15.12.2013
Сообщений: 6,383
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
Ответ Создать тему
Опции темы

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