| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 979 人关注过本帖
标题:这个程序我不解,那个好心人能帮帮我?
只看楼主 加入收藏
qing24904529
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
这个程序我不解,那个好心人能帮帮我?
#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);
}
 
k=sqrt(m+1); 这个什么意思为什么我我把+1换成加几都行,或者直接不加结果也一样?
还有最后的leap=1是干什么的?我换成leap等于几结果也都一样?
谁帮帮我,谢谢
搜索更多相关主题的帖子: include 干什么 
2010-09-04 23:31
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:2 
k=sqrt(m+1); 的 意识是,(M+1)的 和的平帮根赋值给K


leap=1把1赋值给eap

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-04 23:54
fanxuechao
Rank: 2
来 自:新疆
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-6-9
收藏
得分:2 
k=sqrt(m+1); 这个意思是“(m+1)开平方”.....
此程序的目的是找出101到200之间的质数
2010-09-05 00:24
飘过的落叶
Rank: 2
等 级:论坛游民
帖 子:14
专家分:26
注 册:2010-6-8
收藏
得分:2 
这是一个求素数的程序,而k=sqrt(m+1)是求m+1的平方根。
就是循环从2到k就行了。加几都无所谓但是不能太大,如果
太大的话就会有错误的。而leap=1就是循环结束后判断是否
为素数。可以去掉将if()换成这样的一段程序
if(i>k+1).
2010-09-05 00:49
唐小虎
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:119
注 册:2010-6-25
收藏
得分:2 
回复 3楼 fanxuechao
同意
2010-09-05 01:19
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 qing24904529
#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)如果leap不等于0就执行下面花括号的语句  {printf("%-4d",m);h++;        if(h%10==0)整除就执行下面语句         printf("\n");         }    leap=1;   }  printf("\nThe total is %d",h); }

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-05 01:31
流浪天边
Rank: 2
等 级:论坛游民
帖 子:100
专家分:53
注 册:2010-7-12
收藏
得分:2 
学习下!
2010-09-05 05:06
a120400764
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2010-9-3
收藏
得分:2 
求一个数是否是素数,只用算出小于这个数的平方根的最大整数能否被 2 至 他本身-1 整除,如果不能则是素数,如果能则不是,用平方根简化了循环次数,所以你在这个数后面加一,不加或加其他的是不会影响到结果的,只会增加相应的运算次数,前提是sqrt(m+ )结果不能大于m本身
2010-09-05 11:37
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:2 
if (条件): 本质上是判断括号中条件的 “真” 和 “假”。 真->是一个非 “零”的值,假->就是一个为 “零”
              的值。所以,如果给 leap 赋值, 不管这个值是多少,只要不等于 “零”, 用于if 语句就会作为
             “真”值看待,从而执行后面的语句。

#include <stdio.h>

int main (void)
{
       int leap = 2;
 
       if (leap)  
            printf ("%d\n", leap);
       leap = 0;  //这里给 leap 重新赋值,试试把 0 换成别的整数,负数也行。
       if (leap)
            printf ("%d\n", leap+1);
       return 0;
}
希望对你理解提问中的程序有帮助。。。


     
            
            
2010-09-05 14:57
快速回复:这个程序我不解,那个好心人能帮帮我?
数据加载中...
 
   



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

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