-1

我是编程新手,刚刚读完 Dan Gookin 的 C 书傻瓜。但我想我正在尝试制作小程序来感受这种语言。

我了解到 C 中有一个随机计数器(不是那么随机),显然使用计算机内部时钟有助于使随机计数器更加随机。我在书中看到了一个代码示例,当我想在网格中打印 f() 随机数时它可以工作。但现在我希望程序将其限制为仅 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));
}       
4

1 回答 1

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");
}
于 2013-09-18T01:57:03.077 回答