为什么直接写if(is_prime(val))就能进行判断


#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)
...

以下内容部分参考ChatGPT模型:


这是因为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.”。

如果我的建议对您有帮助、请点击采纳、祝您生活愉快