小白求助关于函数的问题
# include <stdio.h>bool Prime( int avl)
{
int i;
for (i=2; i<val; ++i)
{
if (0 == val%i)
break;
}
if (i == val)
return true;
else
return false;
}
这个为什么会出错? 本帖最后由 jackz007 于 2019-11-4 00:25 编辑
函数 Prime() 的输入参数名称写错了。
bool Prime( int avl)
{
int i ;
for (i=2; i<val; ++i) if (0 == val%i) break ;
if (i == val) return true ;
elsereturn false ;
}
c语言里是没有bool类型的,c99之后有一个新的头文件,要在源文件中包含stdbool.h这个头文件,才能用bool。 #include<stdio.h>
#define False 0
#define True1
typedef int Bool;
用这种形式的吧 lovedai 发表于 2019-11-3 22:22
#include
#define False 0
#define True1
通过宏定义还有typedef实现 lovedai 发表于 2019-11-3 22:22
通过宏定义还有typedef实现
为什么别人,像我那样写可以正常运行?(哔哩哔哩《郝斌C语言自学教程》里面讲函数那些视频)而我主要写会报错;是不是软件需要怎样设置? lovedai 发表于 2019-11-3 22:22
#include
#define False 0
#define True1
加了这些也还是报错; 谁能不死 发表于 2019-11-4 11:52
加了这些也还是报错;
抱歉,是我走眼了,你那个avl和val有问题,我没仔细看,你改一下 lovedai 发表于 2019-11-4 21:00
抱歉,是我走眼了,你那个avl和val有问题,我没仔细看,你改一下
那几个val 没有问题,我试过的 # include <stdio.h>
bool Prime(int avl)
{
int i;
for (i = 2; i < avl; ++i)
{
if (0 == avl % i)
break;
}
if (i == avl)
return true;
else
return false;
}
int main()
{
bool p = Prime(5);
if (p) printf("正确");
}
这是我测试用的,如果你再有问题,是不是说,你没写main()? lovedai 发表于 2019-11-5 12:49
# include
bool Prime(int avl)
# include <stdio.h>
bool Prime(int avl)
{
int i;
for (i = 2; i < avl; ++i)
{
if (0 == avl % i)
break;
}
if (i == avl)
return true;
else
return false;
}
int main()
{
bool p = Prime(5);
if (p) printf("正确");
}
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(3) : error C2061: syntax error : identifier 'Prime'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(3) : error C2059: syntax error : ';'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(3) : error C2059: syntax error : 'type'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(22) : error C2065: 'bool' : undeclared identifier
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(22) : error C2146: syntax error : missing ';' before identifier 'p'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(22) : error C2065: 'p' : undeclared identifier
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\lianxi8zhizhen\zhizhena1.c(22) : warning C4013: 'Prime' undefined; assuming extern returning int
执行 cl.exe 时出错.
zhizhena1.obj - 1 error(s), 0 warning(s)
大神 你看看这是从你那复制过来的;所以我怀疑是不是我的软件有问题? lovedai 发表于 2019-11-5 12:49
# include
bool Prime(int avl)
找到原因了,是文件扩展名的问题;后缀可能不能是.c吧;改成.cpp就OK了;谢谢你的帮忙 lovedai 发表于 2019-11-5 12:49
# include
bool Prime(int avl)
bool p = Prime(5);
if (p)
大神 这两行看不明白啊, 谁能不死 发表于 2019-11-5 18:05
bool p = Prime(5);
if (p)
大神 这两行看不明白啊,
不能是.c,是因为我前面说的,不能直接用bool.
这两行是把5作为参数传进去,函数返回值赋值给p,if判断p,p这里返回了true. lovedai 发表于 2019-11-5 18:52
不能是.c,是因为我前面说的,不能直接用bool.
这两行是把5作为参数传进去,函数返回值赋值给p,if判断p ...
没有看到你定义p 啊,怎么不报错呢?
给看看我下面这个 if ( prime(n) ) 为什么说 错误C2065:“prime”:未声明的标识符
# include <stdio.h>
bool Prime( int val)
{
inti;
for (i=2; i<val; ++i)
{
if (0 == val%i)
break;
}
if(i == val)
return true;
else
return false;
}
int main(void)
{
int n;
printf("请输入你要检验的数字\n");
scanf("%d",n);
if ( prime(n) )
printf("%d这个数是素数\n", n);
else
printf("%d这个数不是素数\n", n);
return 0;
}
谁能不死 发表于 2019-11-5 20:52
没有看到你定义p 啊,怎么不报错呢?
给看看我下面这个 if ( prime(n) ) 为什么说 错误C2065:“prime” ...
p小写了,大小写敏感的 lovedai 发表于 2019-11-7 13:45
p小写了,大小写敏感的
确实是厉害 ,谢谢了
页:
[1]