Эта программа предлагает пользователю ввести имя.Затем он будет использовать два цикла while.Один цикл while для генерации 3 случайных букв, за которым следует тире, а затем еще один цикл while для генерации 3 случайных цифр.Я могу заставить программу сделать это три раза по мере необходимости.
Проблема в том, что он генерирует три одинаковых случайных числа и буквы для каждого из трех введенных имен.Я хотел бы, чтобы каждое введенное имя печатало уникальный набор букв и цифр.Это что-то с функцией srand ()?
Существует также проблема добавления тире после печати символов после ввода второго имени и двух тире после печати символов для третьего введенного имени.
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int nameCount = 0; // Hold the number of names entered by user
string randomID; // Used to concatenate the random ID for 3 names
string name; // To hold the 3 names entered by the user
int numberOfCharacters = 0;
int numberOfNumbers = 0;
int a;
srand(time(NULL));
while(nameCount < 3) {
cout << "\nEnter a name: ";
getline(cin, name);
while (numberOfCharacters < 3) {
randomID += static_cast<int>('a') + rand() %
(static_cast<int>('z') - static_cast<int>('a') + 1);
numberOfCharacters++;
}
randomID += "-";
while (numberOfNumbers < 3) {
randomID += static_cast<int>('1') + rand() %
(static_cast<int>('1') - static_cast<int>('9') + 1);
numberOfNumbers++;
}
cout << randomID;
nameCount++;
}
return 0;
}