c语言函数调用出错?

itelly 2012-07-10 04:19:07
#include <stdio.h>
#include <math.h>

int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}
bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}




C:\Users\haolly\Documents\100_5.c|14|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'isprime'|
...全文
205 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzamygsd 2012-07-11
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <math.h>
#include<stdbool.h> //加上头文件
bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}
int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}
fzamygsd 2012-07-11
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <math.h>
#include<stdbool.h>
bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}
int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}


试试这个。。。。
Freeze_Z 2012-07-11
  • 打赏
  • 举报
回复
LS正解. C语言中使用类bool类型一般需要自行定义.

要不可以使用g++. C++中有bool类型.
q394944800 2012-07-11
  • 打赏
  • 举报
回复
标准版C语言中,没有bool;需要重新定义下,因此6楼用法是正确的
Ever_lover 2012-07-11
  • 打赏
  • 举报
回复
这个。。。。。
AnYidan 2012-07-11
  • 打赏
  • 举报
回复
google 作用域
MFCANDPAI 2012-07-11
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}

int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}



wizard_tiger 2012-07-11
  • 打赏
  • 举报
回复
函数使用前要先声名。
  • 打赏
  • 举报
回复
先声明,后调用~
疯疯癫癫 2012-07-10
  • 打赏
  • 举报
回复
和是否是gcc无关,先声明,后使用。。。。。
itelly 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

C/C++ code

#include <stdio.h>
#include <math.h>

#define false 0
#define true 1
typedef int bool;

bool isprime(int k)
{
int i;
……
[/Quote]

好了,这个是什么原因呢??
我用的是gcc
ly_8625 2012-07-10
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <math.h>

#define false 0
#define true 1
typedef int bool;

bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}

int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}

改成上面试试。
itelly 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C/C++ code

#include <stdio.h>
#include <math.h>
bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}
int main()
{
……
[/Quote]
我觉得我的编译器可能有问题,还是这个看不懂的错误:
C:\Users\haolly\Documents\0524text.c|4|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'isprime'|
luoyingbinfeng 2012-07-10
  • 打赏
  • 举报
回复
要声明你所调用的函数!
xunxun 2012-07-10
  • 打赏
  • 举报
回复
你还没声明isprime呢
W170532934 2012-07-10
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <math.h>
bool isprime(int k)
{
int i;
for(i=2;i<=sqrt(k);i++)
{
if(k%i==0)
return false;
}
return true;
}
int main()
{
int k=7;
if(isprime(k))
{
printf("yes");
}
return 0;

}


提前申明或者放在main的前面,使其在调用之前,编译器能够找到该函数的位置
IVERS0N 2012-07-10
  • 打赏
  • 举报
回复
bool isprime(int k) 提前声明

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧