| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 411 人关注过本帖
标题:请帮忙解释一下源程序个别语句的含义?
只看楼主 加入收藏
jiawan007
Rank: 1
等 级:新手上路
帖 子:45
专家分:2
注 册:2009-8-1
结帖率:90.91%
收藏
已结贴  问题点数:6 回复次数:1 
请帮忙解释一下源程序个别语句的含义?
题目:求100以内的全部素数,没行输出10个。
源程序
#include<stdio.h>
#include<math.h>
int main(void)
{
    int count,i,m,n;
    count=0;
    for(m=2;m<=100;m++)
    {
        n=sqrt(m);
        for(i=2;i<=n;i++)
            if(m%i==0) break;
            if(i>n)
            {
                printf("%6d",m);
                count++;
                if(count%10==0)
                    printf("\n");
            }
    }
    printf("\n");
    return 0;
}
我的问题如下:
1.我知道这个break是跳出的含义,但“跳出”具体表示什么,在这个题中判断m%i==0,即m不是素数,跳出说明什么?
2.为什么还要考虑i>n的情况?
3.两个printf("\n")有什么区别,我看不明白?
搜索更多相关主题的帖子: 语句 解释 含义 
2009-11-02 22:12
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:6 
#include<stdio.h>
#include<math.h>
int main(void)
{
    int count,i,m,n;
    count=0;
    for(m=2;m<=100;m++)
    {
        n=sqrt(m);
        for(i=2;i<=n;i++)
            if(m%i==0)
                break;//break是跳出红色的for循环
        if(i>n)   //这个if语句不在红色的for循环里面,是红色的for循环结束后才执行的。所以当n是素数时,i就停在某个数上了,反之i将变为n+1,即i>n,依次作为判断是素数的依据。
            {
                printf("%6d",m);
                count++;
                if(count%10==0)
                    printf("\n");//如果素数的个数每超过十个,就回车,起到美观的作用。一面一行排很长。
            }
    }
    printf("\n");//这个\n不在for循环的输出里,其作用是在输出最后一个素数后回车。若去掉此句,光标停在最后一个素数后面,不会换行。不影响实质内容。
    return 0;
}
2009-11-02 22:35
快速回复:请帮忙解释一下源程序个别语句的含义?
数据加载中...
 
   



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

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