Рандомное число в заданном диапазоне. Помогите

Нужно из известного заранее массива(символьного массива), например, (a,b,c) составить случайную строку, которая далее будет использоваться. Сам я только начал изучать программирование, потому не особо смекаю, как это сделать

В правильном направлении двигаешься ))

#include <cstdlib>
#include <time.h>

// функция генерации случайного числа из закрытого диапазона
inline int rrand(int range_min, int range_max) {
    return int((double)rand() / (RAND_MAX + 1) * (range_max - range_min) + range_min + 0.5);
}

// ...

srand((unsigned)time(NULL));
cout << rrand(-100, 100);

Вот еще нашел по решению этой задачи.. (код изначально был без комментов, и писал не я, потому помидорами не кидаться)

#include <stdlib.h>
#include <iostream>

int main() {
   static const char alphabet[] = {'a','b','c'};

   int strlen;
   std::cout<<"Enter the length of string: ";
   std::cin>>strlen;
   if(!std::cin ) {
     std::cerr<<"Can't read length"<<std::endl;
     return 1;
   }

   if( strlen < 0 ) {
      std::cerr<<"The length of string must be positive"<<std::endl;
      return 2;
   }
   char* strBuff = new char[strlen + 1];
   strBuff[strlen] = 0;

   for(int i=0;i<strlen;++i) {
      strBuff[i] = alphabet[rand() % (sizeof(alphabet) / sizeof(*alphabet))];
   }

   std::cout<<"Required string: "<<strBuff<<std::endl;

   return 0;
}

Но он всегда выдает одну и ту же строку, если вводить одинаковую длину. Это будет полезно, если подобное нужно будет использовать в лабораторной или еще где-нибудь, где нужен стабильный результат для проверки

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.