您好我正在编写一个程序,该程序将生成10个随机字符,以形成一个单词(这是一个游戏)。生成10个随机字符
所以这里是我的功能:
void GenerateTen(int number)
{
int i;
char abc[30]="abcdefghijklmnopqrstuvwxyz";
char newabc[8];
for (i = 0; i < number; ++i) {
newabc[i] = abc[rand() % (sizeof(abc) - 1)];
printf("%c ", newabc[i]);
}
newabc[number] = 0;
}
数量变量包含10和输出应该是简单地在阵列中打印这些10个字符。编译器没有错误,但程序会生成相同的一组字符。感谢您的帮助! :-)
程序生成相同的字符集 - 这是什么意思?这里的实际问题是什么? –
它应该随机生成不同的集合 – Erail
您真的想在循环前使用'newabc [i] = abc [rand()%strlen(abc)]'为了效率,预计算:'len = strlen(abc) i] = abc [rand()%len]'。 'sizeof'会在某些点注入0x00。而且,如果你得到相同的数字,你可能想要查看'srand'函数(例如'srand(time(NULL));''main''是通常的方式) –