C语言提示某个函数未定义求帮忙

# include <stdio.h> //这是代码
bool IsPrime(int m) //第三行
{
int i;
for (int i = 2; i < m; ++i)
{
if(m%i == 0)
break;
}
if(i == m)
return true;
else
return false;
}

int main(void)
{
int val;

scanf("%d",&val);
if(IsPrime(val)) //第22行
printf("Yes\n");
else
printf("No\n");
return 0;
}

1>------ 已启动生成: 项目: 调用函数-判断素数, 配置: Debug Win32 ------
1> 判断素数.c
1>e:\临时\调用函数-判断素数\调用函数-判断素数\判断素数.c(3): error C2061: 语法错误: 标识符“IsPrime”
1>e:\临时\调用函数-判断素数\调用函数-判断素数\判断素数.c(3): error C2059: 语法错误:“;”
1>e:\临时\调用函数-判断素数\调用函数-判断素数\判断素数.c(3): error C2059: 语法错误:“类型”
1>e:\临时\调用函数-判断素数\调用函数-判断素数\判断素数.c(22): warning C4013: “IsPrime”未定义;假设外部返回 int
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

//这是报错信息
没有悬赏了.....

求帮忙....

C语言没有bool类型,需要自己来定义,同时IsPrime函数的变量i重复定义了修改如下。

# include <stdio.h>             //这是代码

typedef enum  //定义bool类型
{
    true  = 0,
    false = 1,
}bool;

bool IsPrime(int m)       //第三行
{  
    int i;
    for (i = 2; i < m; ++i)// 多了一个int
    {
        if(m%i == 0)
            break;
    }
    if(i == m)
        return true;
    else
        return false;
}

追问

    怎么定义bool类型呢,没看懂

    确实多了个int呢

追答

bool类型就是int,true是0,false是1而已。所以上面定义了一个枚举类型。

c++才有bool类型,把你的.c重命名成cpp也可以解决问题。

追问

大神 留个qq吧,您给我提供的方法全都能实现,谢谢了。

追答

都不用QQ,百度私信联系就行,平常都在线。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-17
需要在Main里面定义
bool isprime(int m);追问

不行的啊

追答

但是你的错误提示是没有定义函数啊

追问

bool IsPrime(int m) //第三行

我在这里已经定义了,你可不可以帮我调试一下呢

追答

那我开VS看一下吧

追问

谢谢大神,楼上的大神给我解决了,真心感谢您俩。

相似回答