基本密码生成器 - 如何在调用时获得不同的 rand(number)
Basic Password Generator - How to get different rand(number) when is called
现在的输出是 HHHHHHHHHHHHHHHHHHH。我希望程序做的是 randomNum 每次通过循环时都有不同的值。所以它就像 AacCEe...然后继续。
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main(){
srand(time(0));
cout << "You'r PW is: \t" << endl;
char abc [] {'A', 'a', 'B' ,'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k'};
int randomNum = rand() % 22;
for(int i = 0; i <20; i++){
cout << abc[randomNum];
}
}
在循环中,您有效地打印了同一个字符 20 次,我想您的意图是随机 select 20 个不同的字符。查看我的内联评论。
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main(){
srand(time(0));
cout << "You'r PW is: \t" << endl;
char abc [] {'A', 'a', 'B' ,'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k'};
for(int i = 0; i <20; i++){
cout << abc[rand() % 22]; // look here
}
}
你在循环之前已经初始化了随机数
int randomNum = rand() % 22;
您应该将代码更改为
int randomNum;
for(int i = 0; i <20; i++)
{
randomNum = rand() % 22;
cout << abc[randomNum];
}
这应该有效。
目前 randomNum 仅获得一个值,您在整个循环中使用该值而不更改该值。
现在的输出是 HHHHHHHHHHHHHHHHHHH。我希望程序做的是 randomNum 每次通过循环时都有不同的值。所以它就像 AacCEe...然后继续。
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main(){
srand(time(0));
cout << "You'r PW is: \t" << endl;
char abc [] {'A', 'a', 'B' ,'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k'};
int randomNum = rand() % 22;
for(int i = 0; i <20; i++){
cout << abc[randomNum];
}
}
在循环中,您有效地打印了同一个字符 20 次,我想您的意图是随机 select 20 个不同的字符。查看我的内联评论。
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
int main(){
srand(time(0));
cout << "You'r PW is: \t" << endl;
char abc [] {'A', 'a', 'B' ,'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', 'K', 'k'};
for(int i = 0; i <20; i++){
cout << abc[rand() % 22]; // look here
}
}
你在循环之前已经初始化了随机数
int randomNum = rand() % 22;
您应该将代码更改为
int randomNum;
for(int i = 0; i <20; i++)
{
randomNum = rand() % 22;
cout << abc[randomNum];
}
这应该有效。
目前 randomNum 仅获得一个值,您在整个循环中使用该值而不更改该值。