我是编程的新手,我刚读完Dan Gookin的C傻瓜书。但我以为我正在尝试制作一些小程序来感受这种语言。
我了解到C中有一个随机计数器(不是随机的),显然使用计算机内部时钟有助于使随机计数器更随机。我在书中看到了一个代码示例,当我想在网格中printf()随机数时,它就可以工作了。但是现在我希望程序将它限制为只有3个数字,而不是打印出数字的数字,我有兴趣学习如何让计算机以随机的方式返回printf()函数。它不一定是printf()它可以是任何函数,但这似乎是最容易检查的方法。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int rnd(int range);
void seedrnd(void);
int main()
{
int x;
seedrnd();
for(x=0;x<1;x++)
// printf("%i\t" ,rnd(3));
if(seedrnd==0)
printf("Zero");
else if(seedrnd==1)
printf("One");
else
printf("Two");
return(0);
}
int rnd(int range)
{
int r;
r=rand()%range;
return(r);
}
void seedrnd(void)
{
srand((unsigned)time(NULL));
}
答案 0 :(得分:2)
您将seedrnd
(指向seedrnd
函数的指针)放入rnd(int)
,而不是for(x=0;x<1;x++) {
int r = rnd(3); // Call rnd(3)
printf("%i\t", r);
if(r==0) // Use r, not seedrnd
printf("Zero");
else if(r==1)
printf("One");
else
printf("Two");
}
。你的意思是在比较表达式中调用一个函数,而不是使用它的名字:
{{1}}