如何解决C++ 生成随机词
编写一个生成随机单词的程序(单词数 = n)。单词的最大长度 = m。 单词必须包含大小写字母。大字母的概率必须等于 50%。
示例:
- 输入:2 4
- 输出:AbCd eFgH
我该怎么做?
到目前为止,我想出了如何生成随机大小字母。
我的代码:
#include <iostream>
using namespace std;
int main()
{
int n,m,s;
cin >> n;
cin >> m;
s=n*m;
char Tab[s];
for(int i=0; i<n*m; i++)
{
Tab[i]= 'A' + rand()%25;
}
for(int i=1; i<n*m; i++)
{
Tab[i+2]= 'a' + rand()%25;
}
for(int i=0; i<n*m; i++)
{
cout << Tab[i] << " ";
}
return 0;
}
解决方法
代码-
#include <iostream>
#include <time.h>
#include <string>
#include <stdlib.h>
using namespace std;
int main() {
int n,m;
cin>>n>>m;
srand(time(NULL));// without this rand() function might continuously give the same value
while(n--){
int stringLen = (rand() % m) +1; // getting random length
string s=""; // taking null string
for(int i=0; i<stringLen; i++){
if(rand() % 2 == 0 ){ // capital or small letter
s += 'A' + (rand() % 26);
}else{
s += 'a' + (rand() % 26);
}
}
cout<<s<<" ";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。