Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
#1

Генерация случайных букв - C++

10.02.2013, 02:54. Просмотров 2970. Ответов 9
Метки нет (Все метки)

Всем привет, у меня такая проблема :
C++ (Qt)
1
2
3
4
for (int f = 0; f < 10; f++)
{
cout << rand ()%'z'+'a' << "  ";
}
При компиляцьіи вьіводит числа а не буквьі.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2013, 02:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Генерация случайных букв (C++):

генерация случайных букв - C++
как можно с помощью рандома запрограммировать режим генерации случайных букв (для азбуки Морзе)? есть маленькие соображения но думаю они...

Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими - C++
Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими .Если непонятно то...

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

Генерация случайных чисел С++ - C++
сгенерировать вещественные числа от 0 до 1(например,0,1;0,2;1,0; и т.д.) в этом случае выводит только 0 и 1: #include&lt;stdio.h&gt; ...

Генерация случайных чисел - C++
Как в С сгенирировать последовательность случайных чисел от x до y.Например от 1 до 100.

Генерация случайных чисел - C++
Здравствуйте, появилась такая проблема: при генерации случайного числа функцией rand(); мне нужно сгенерировать 5 случайных чисел, но...

9
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
10.02.2013, 02:59 #2
Цитата Сообщение от King Of Kings Посмотреть сообщение
Всем привет, у меня такая проблема :
C++ (Qt)
1
2
3
4
for (int f = 0; f < 10; f++)
{
cout << rand ()%'z'+'a' << "  ";
}
При компиляцьіи вьіводит числа а не буквьі.
не удивительно, тут фигня в трёх местах...

это - %'z'
это - +'a'
и всё это вкуче )))

попробуйте так
C++
1
 cout << char(rand()%26+0x61) << "  ";
0
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2013, 03:08 #3
King Of Kings, держи Генератор рандомного текста


Добавлено через 1 минуту

Не по теме:

abit,

Цитата Сообщение от abit Посмотреть сообщение
cout << char(rand()%26+0x61) << " *"
- зачем так сложно???
Вот так это всё легко делается cout<<('a' + rand() % ('z' - 'a'))<<" ";

1
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2013, 03:11 #4
King Of Kings, вот поправил твой код
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main()
{
    for(int i = 'a'; i < 'z'; i++)
        cout<<char('a' + rand() % ('z' - 'a'))<<" ";
    return 0;
}
1
Миниатюры
Генерация случайных букв  
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
10.02.2013, 03:14 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <ctime>
#include <cstdlib>
#include <iostream>
 
int randomRange(int low, int high)
{
    return rand() % (high - low + 1) + low;
}
 
int main()
{
    srand(time(NULL));
    
    for (int n = 0; n < 10; ++n)
    {        
        const char ch = randomRange('a', 'z');
        std::cout << ch << "  ";
    }
}
1
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
10.02.2013, 03:33  [ТС] #6
Цитата Сообщение от abit Посмотреть сообщение
cout << char(rand()%26+0x61) << " ";
%26+0x61 - это от a до z, как мне записать такое
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
int rndAbetkaRight(char vid_,char do_, char cycle)
{
    for (int f = 0; f < cycle; f++)
    {
    cout << rand ()%do_+vid_ << "  ";
    }
return 0;
}
int rndAbetkaDown(char vid_,char do_, char cycle)
{
    for (int f = 0; f < cycle; f++)
    {
    cout << rand ()%do_+vid_ <<endl;
    }
return 0;
}
 
 
cout << "от : ";
cin >> vid;
cout << "До : ";
cin >> bo;
cout << "количество букв : ";
cin >> cycle;
cout<<endl<<"Результат рандома записывать в рядок (yes | no) : ";
cin >> answerYorN;
if (answerYorN == answeryes)
    {
        rndAbetkaRight(vid,bo,cycle);
    }
    if (answerYorN == answerno)
    {
    rndAbetkaDown(vid,bo,cycle);
    }
0
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
10.02.2013, 04:02 #7
C++
1
2
3
4
for (int f = 0; f < cycle; f++)
    {
    cout << char(rand()%((do_-vid_+1))+vid_) <<endl;
    }
1
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
10.02.2013, 04:36  [ТС] #8
Всем спасибо=)
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5115 / 1553 / 384
Регистрация: 23.01.2011
Сообщений: 3,177
10.02.2013, 09:54 #9
как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <random>
 
int main ()
{
   std::random_device rand;
   std::mt19937 gen(rand());
   std::uniform_int_distribution <> distr('a', 'z');
   
   char symbol;
   for (int i = 0; i < 25; i++)
      std::cout << (symbol = distr(gen)) << " ";
   std::cout << std::endl;
 
   return 0;
}
0
rangerx
10.02.2013, 15:55     Генерация случайных букв
  #10

Не по теме:

Ev[G]eN, uniform_int_distribution может работать с любым целым типом указанным в качестве параметра шаблона, приводить к char ничего не нужно

C++
1
2
3
4
5
6
//...
std::uniform_int_distribution<char> distr('a', 'z');   
 
for (int i = 0; i < 25; i++)
    std::cout << distr(gen) << " ";
//...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2013, 15:55
Привет! Вот еще темы с ответами:

Генерация случайных чисел - C++
Доброго времени суток ! Как генерировать случайное число например в диапазоне от 1 до 52 а потом исключить это число, и генерировать...

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

генерация случайных чисел - C++
полазил по форумам, понял что лучшей конструкцией для ввода случайных чисел является: srand(time(NULL)); ... int r =...

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


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

Или воспользуйтесь поиском по форуму:
10
10.02.2013, 15:55
Ответ Создать тему
Опции темы

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