我的编译器显示错的,布尔类型哪里
#include<stdio.h>int main()
{
int num,i;
_Bool flag=1;
printf("请输入一个数字:");
scanf("%d",&num);
for(i=2;i<num/2;i++)
{
if(num%i==0)
{
flag=0;
}
}
if(flag)
{
printf("%d是一个素数\n",num);
}
else
{
printf("%d不是一个素数\n",num);
}
return 0;
}
#include<stdio.h>
int main()
{
int num,i;
int flag=1;//在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。
printf("请输入一个数字:");
scanf("%d",&num);
for(i=2;i<num/2;i++)
{
if(num%i==0)
{
flag=0;
break;//这里最好加个break
}
}
if(flag)
{
printf("%d是一个素数\n",num);
}
else
{
printf("%d不是一个素数\n",num);
}
return 0;
}
这个程序是可以运行的,但是你前面已经定义了num是整数。而素数的定义是“一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数,即素数”也就是说你这个程序只能输入整数,就是素数,所以不管怎么运行结果都是显示是素数 建议你这边的话加上头文件:#include <stdool.h> 另外可查看小甲鱼老师说的:为什么C99新增加的布尔类型叫_Bool,而不是bool或BOOL?
https://fishc.com.cn/thread-67033-1-1.html
(出处: 鱼C论坛)
页:
[1]