#include
bool is_prime(int val)
{
int i;
for(i=2; iif(val%i == 0)
break;
}
if(i == val)
return true;
else
return false;
}
int main()
{
int i;
int val;
printf("请输入要判断的数:");
scanf("%d", &val);
if(is_prime(val))
printf("yes!\n");
else
printf("no!\n");
return 0;
}
为什么直接写if(is_prime(val))就能进行判断
因为在你定义的函数is_prime为bool型,所以函数is_primr他的返回值为 true or false也即是0 或者 1
所以if(is_prime(val))就等同于if(is_prime(val)==true或者false) 1为真,0为假
本来就是这样,因为函数返回值就是布尔值
if(is_prime(val))
相当于
if(is_prime(val) == true)
当然也可以写
if((is_prime(val) == true) == true)
...
这是因为is_prime函数返回的是一个bool类型的值,即true或false。在if语句中,如果条件判断的结果为true,则执行if语句块中的代码,否则跳过if语句块。因此,直接写if(is_prime(val))就可以进行判断。下面是一个简单的例子:
#include
#include
bool is_prime(int val)
{
int i;
for(i=2; iif(val%i == 0)
return false;
}
return true;
}
int main()
{
int n;
printf("Please input a number: ");
scanf("%d", &n);
if(is_prime(n))
printf("%d is a prime number.\n", n);
else
printf("%d is not a prime number.\n", n);
return 0;
}
在上面的例子中,如果输入的n是一个素数,则输出“n is a prime number.”,否则输出“n is not a prime number.”。