错误:ISO C禁止指针和整数之间的比较

时间:2013-09-18 01:54:27

标签: c++ c random compiler-errors

我是编程的新手,我刚读完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));
}       

1 个答案:

答案 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}}