| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:还是求助,遇到if语句的特殊情况,不知如何理解
取消只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
还是求助,遇到if语句的特殊情况,不知如何理解
本人在网上找到这样一题:
“判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。”自己没做出来。答案是这样给的
#include "math.h"
main()
{
  int m,i,k,h=0,leap=1;
  printf("\n");
  for(m=101;m<=200;m++)
   { k=sqrt(m+1);
    for(i=2;i<=k;i++)
      if(m%i==0)
       {leap=0;break;}
    if(leap) {printf("%-4d",m);h++;
         if(h%10==0)
         printf("\n");
        }
    leap=1;
   }
  printf("\nThe total is %d",h);
}
我运行了一下 ,确实是对的,其中大部分能看懂,只是带下划线的if(leap)处百思不得其解,括弧内怎么不是判断式,而且那个leap不能变,一变就出错,遍翻书籍也没找到是怎么回事,请指教啊。
搜索更多相关主题的帖子: 如何 include 
2012-10-25 16:51
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
           {leap=0;break;}//leap是一个标记  是不是说这里的leap=0没有实际意义呀
        if(leap)   //判断leap是否为0     这个leap是不是相当于leap=1呀,这是一种巧合还是C本身允许这样写?
             {printf("%-4d",m);//按格式输出
                     h++;
         if(h%10==0) //每行10个
         printf("\n");
        }
    leap=1;//初始值为

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-25 18:35
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
我也试了 ,没问题的,可是我不明白if(leap)是什么用法,翻遍了手头现有的资料都没有这种用法

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-25 18:54
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
是不是这样理解的
#include "math.h"
main()
{
  int m,i,k,h=0,leap=1;//这里为leap赋予了一个初始值1
  printf("\n");
  for(m=101;m<=200;m++)
   { k=sqrt(m+1);
    for(i=2;i<=k;i++)
      if(m%i==0)
       {leap=0;break;}//*这里为所有i的值做了个leap的标记,能整除m的被标记为0,不能的仍是初始值1*//
    if(leap) {printf("%-4d",m);h++; //*这个leap是个省略形式,因为这个if语句和上一个if语句没有包涵关系,所以他的原型是原来的值1也就是leap==1*//           
              if(h%10==0)               
         printf("\n");
        }
    leap=1;//*将所有m的值重新还原成1,开始下一轮循环*//
   }
  printf("\nThe total is %d",h);
}
不知道我这样理解对不对,望指教。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-25 19:22
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
受到
了解
明白
谢谢

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-26 08:04
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
明白了,谢谢各位。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-26 10:31
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 

翻遍书,找遍网,问遍人,终于找到了。
谭浩强著C语言程序设计第四版第95页下数第9行。反复研究,来回琢磨————终于,茅厕顿开。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-10-26 14:25
快速回复:还是求助,遇到if语句的特殊情况,不知如何理解
数据加载中...
 
   



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

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