求大神帮我看看这一段判断素数的C语言程序?

#include<stdio.h>boolIsPrime(intval){inti;for(i=2;i<val;++i){if(val%i==0)break;}if(i=... # include <stdio.h>

bool IsPrime(int val)
{
int i;

for (i=2; i<val; ++i)
{
if (val%i == 0)
break;
}
if (i == val)
return true;
else
return false;
}

int main(void)
{
int m;

scanf("%d", &m);
if ( IsPrime(m) ) //为何这个语句不用定义为if ( IsPrime(m) == ture ),系统就可以自动判断它对应的是ture?
printf("Yes!\n");
else
printf("No!\n");

return 0;
}
以上这个是用C语言程序我都看懂了,但是有个地方特别纠结,在该程序结尾处
if ( IsPrime(m) ) //为何这个语句不用定义为if ( IsPrime(m) == ture ),系统就可以自动判断它对应的是ture?
printf("Yes!\n");
else
printf("No!\n");

return 0;
}
请大神回答我标注出来的问题!!谢谢
展开
 我来答
百度网友df00a43
2013-07-02 · TA获得超过157个赞
知道答主
回答量:22
采纳率:0%
帮助的人:28万
展开全部
先让我明确一下你的问题,你很纠结为什么“if ( IsPrime(m) )” 不写成不用“if ( IsPrime(m) == ture )”。是把?
是这样的,你所说的那个写法是最标准的,但是为了方便一般,会写成程序里面的那样。从变异的原理上来讲,是没有错的。因为IsPrime(m)的返回值,是bool型的,结果只有1(对应true)和0(对应false),当你所说的IsPrime(m) == ture时候,就相当于IsPrime(m)运行后,返回了1给if语句,而当if()的括号中的值,不是0的时候,就会执行if()下面的“printf("Yes!\n");” 语句了;反之,如果IsPrime(m) == false时候,if()的括号中的值就是0,这样就执行“IsPrime(m) == ture”语句了。
至于你一定要问,既然这两种都可以,那么为什么这么写,而不是你说的那么写?我只能说这是个人的习惯问题。如果你一定要按你那么写,也是没有错的。只是习惯问题,没必要太钻牛角尖,接受就好了。愿意用,就用;不愿意用,就按自己的来。

希望能帮助到你。还有什么问题,欢迎追问。
nanhay
2013-07-02 · TA获得超过1173个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:1010万
展开全部
//******************************************************************************
// 判断素数
//******************************************************************************
//if
//语法:
// if( conditionA ) {
// statement-listA;
// }
//
// else if( conditionB ) {
// statement-listB;
// }
//
// ...
//
// else {
// statement-listN;
// }
//
//
//
//if 构造一个允许不同的代码在不同的条件下执行的分支机制.conditions
//是判断语句,statement-list . 假如条件为假, else语句块将被执行,所有的else是可选的.
//
//所以if(IsPrime(m)) 即可,当然if(IsPrime(m) == ture ) 也是可以的

//祝学习进步,更上一层楼 *(^-^)*
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友30bf836
2013-07-02 · 超过17用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:45.3万
展开全部
if ( IsPrime(m) ) 等同于 if ( IsPrime(m) == ture ),

if ( !IsPrime(m) ) 等同于 if ( IsPrime(m) != ture )。
if()里面跟的就是一个逻辑值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
精武7
2013-07-02 · TA获得超过151个赞
知道答主
回答量:87
采纳率:0%
帮助的人:58.4万
展开全部
if()里面的 条件默认为真。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanzhider
2013-07-02
知道答主
回答量:23
采纳率:100%
帮助的人:11.3万
展开全部
IsPrime(m)如果返回true if表达式成立 返回false 则不成立,OK????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式