| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 845 人关注过本帖
标题:对于用函数写的是否素数有一步不理解,谢谢大神
只看楼主 加入收藏
s人圭日月
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2016-6-22
结帖率:50%
收藏
已结贴  问题点数:24 回复次数:7 
对于用函数写的是否素数有一步不理解,谢谢大神
# include <stdio.h>

bool IsPrime(int val)
{
    int i;
   
    for (i=2;i<val;++i)
    {
        if (val%i==0)
            break;
    }
    if (i == val)//2222222第二部的这里return ture 为啥下面11111111处直接可以判断yes.而false就能判断No
        return true;
    else
        return false;
}

int main(void)
{
    int val;
    int m;
    scanf("%d",&m);
    if (IsPrime(m))//1111111111这里用IsFrime调取上面的,我能理解
        printf("yes!\n");
    else
        printf("No");
   
return 0;
}

搜索更多相关主题的帖子: include 
2016-07-26 10:36
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
因为i == val时,表示上面的for循环一直运行到结束都没碰到if (val%i==0)的情况,也就是所有的i都不能被val整除,这样,val就是素数了。
2016-07-26 10:49
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:0 
目测这个程序这样并不能在c下运行,c是没有bool变量的。
i在这里充当一个除数,如果value能整除i,则跳出循环。否则++i;
如果i在到达value值之前,就能被value整除,则说明value有小于本身的因素,则它不是素数return 0。
如果直到i到达value,也就是只有当i=value时,value才能整除i,则说明value没有小于本身的因素,则他是素数return 1。

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-07-26 11:04
s人圭日月
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2016-6-22
收藏
得分:0 
回复 2楼 grmmylbs
i==val这个我懂  我的意思是IsFrime (m)调用bool里面,然后运行到return  true,怎么再下面就直接判断yes还是no   这里我是看不懂的  

if  只判断这 IsFrime (m)    这个IsFrime (m)实质上代表的是什么条件   因为不懂if 判断什么条件,怎么执行。
2016-07-26 11:10
s人圭日月
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2016-6-22
收藏
得分:0 
回复 3楼 Alien_Lee
c现在可以使用bool了,我2010版
2016-07-26 11:11
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
if判断的就是IsFrime (m)这个函数的返回值。类似于if(a)判断的是a的值,a为true那么if就为真。
2016-07-26 11:13
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
收藏
得分:24 
回复 5楼 s人圭日月
这里其实就是一个if条件的问题,if条件里其实并不判断他是什么值,只要它是非零的就认为是真。所以当返回true时,判断为真,false为假。这里判断的为函数的返回值
玩c的人都知道,其实bool变量在判断里意义并不是很大,只是增加了可读性而已。毕竟bool在c里本质上并不是真正的bool。


[此贴子已经被作者于2016-7-26 11:39编辑过]


  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2016-07-26 11:36
s人圭日月
Rank: 2
等 级:论坛游民
帖 子:36
专家分:27
注 册:2016-6-22
收藏
得分:0 
回复 7楼 Alien_Lee
好的   谢谢
2016-07-26 13:47
快速回复:对于用函数写的是否素数有一步不理解,谢谢大神
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043541 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved