foo.c: In function 'isprime': error: expected expression before 'int' 是什么意思?

编译失败, 返回值为 1, 编译器输出如下
foo.c: In function 'isprime':
foo.c:25: error: expected expression before 'int'

代码:
int isprime(int x){
int tmp;
if (x==2) return 1;
if (x==0) return 0;
else {
tmp=int(sqrt(x));
for (i=2;i<=tmp;i++){
if ((x%i)==0) return 0;
else return 1;
}
}
}

第1个回答  推荐于2018-02-28
int()是你定义的函数么?
如果是类型转化要用tmp=(int)(sqrt(x));

其次,i要先声明在使用

最后,这个函数如果是判断素数的话,逻辑上也有错误……
我就顺便改了吧:

int isprime(int x){
int tmp;
if (x==2) return 1;
if (x==0) return 0;
else {
int i;
for (i=2;i*i<=x;i++){
if ((x%i)==0) return 0;
}
}
return 1;
}本回答被提问者和网友采纳