【发布时间】:2019-12-22 23:46:51
【问题描述】:
您好 C++ 开发人员和 StackOverflow 用户!
下面的代码是我做的,但是由于某种原因,随机函数不起作用,或者输出的结果总是相同的值“1”,我做错了什么吗?我应该如何解决这个问题?
void setup()
{
int randNumber;
int i;
randNumber = random(2);
Serial.println(randNumber);
pinMode(PIEZO, OUTPUT);
delay(3000);
if (randNumber == 0)
{
for (i = 0; i < 105; i++)
{
tone(PIEZO, notes[i], time[i]);
delay(time[i]);
}
}
else if (randNumber == 1)
for (i = 0; i < 116; i++)
{
tone(PIEZO, Snowman_Notes[i], Snowman_Rhythm[i]);
delay(Snowman_Rhythm[i]);
}
}
void loop()
{
}
【问题讨论】:
-
您在使用
random之前是否randomSeed(analogRead(0));? -
不,我没有...我必须输入 randomSeed(analogRead(0));在使用随机函数之前?我会试试的! :) 感谢您的评论。
-
是的,
analogRead应该来自未连接的引脚,因此您会得到随机噪声来为生成器播种。 -
@super 非常感谢您的帮助,您的解释很有道理!我修复了我的源代码,并且随机函数工作正常! :) 圣诞快乐!