我不断得到一个被叫对象' is_prime'不是一个功能,我不知道为什么

时间:2015-03-01 17:30:41

标签: c

我试图在C中编写一个找到素数并调用函数的程序。然而,我不断得到一个奇怪的错误,说明被叫对象' is_prime'不是第22行的功能。我设置了一个原型,但它仍然无法工作。救命啊!

#include<stdio.h> 

double is_prime(int x);

int main()
{

    double is_prime;
    double primenum = 0;
    int n=0;
    int x=0;

    printf("Enter the value of n: ");       //getting length//
    scanf("%d",&n);
    printf("\n Printing primes less than or equal to %d: \n", n);   //message//

    for(x = 2; x <= n; x++)             //loop to check and print prime #s//
    {
        primenum = is_prime(x);    <------------line 22
        if (primenum == 1)
        { printf("%d, ",x); }
    }
return 0;
}

double is_prime(int x)
{

    int i=0;

    for (i = 2; i < x; i++) // this is the loop to check all numbers//
                        // under n to see if prime//
    {
        if (x==2)
            { return 1;}
        if ((x%i) == 0)
            {return 1;}
        else
            {return 0;}
    }

}

2 个答案:

答案 0 :(得分:3)

您声明了一个与函数名称相同的变量:

double is_prime;

这会将函数的名称从声明点隐藏到main范围的末尾。

使用其他名称,或删除上述声明,因为您似乎不需要它。

答案 1 :(得分:1)

您定义double is_prime;,因此is_prime变为双重而非功能。