我试图在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;}
}
}
答案 0 :(得分:3)
您声明了一个与函数名称相同的变量:
double is_prime;
这会将函数的名称从声明点隐藏到main
范围的末尾。
使用其他名称,或删除上述声明,因为您似乎不需要它。
答案 1 :(得分:1)
您定义double is_prime;
,因此is_prime
变为双重而非功能。