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

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

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

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

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

Всем привет, у меня такая проблема :
C++ (Qt)
1
2
3
4
for (int f = 0; f < 10; f++)
{
cout << rand ()%'z'+'a' << "  ";
}
При компиляцьіи вьіводит числа а не буквьі.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
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) << "  ";
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2013, 03:08     Генерация случайных букв #3
King Of Kings, держи Генератор рандомного текста


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

Не по теме:

abit,

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

-=ЮрА=-
Заблокирован
Автор 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;
}
Миниатюры
Генерация случайных букв  
rangerx
1924 / 1533 / 139
Регистрация: 31.05.2009
Сообщений: 2,896
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 << "  ";
    }
}
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);
    }
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
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;
    }
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
10.02.2013, 04:36  [ТС]     Генерация случайных букв #8
Всем спасибо=)
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2013, 15:55     Генерация случайных букв
Еще ссылки по теме:

C++ Генерация случайных чисел
генерация случайных чисел C++
C++ Генерация случайных чисел
C++ Генерация случайных чисел
C++ Генерация случайных чисел

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

Или воспользуйтесь поиском по форуму:
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) << " ";
//...

Yandex
Объявления
10.02.2013, 15:55     Генерация случайных букв
Ответ Создать тему
Опции темы

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