已知年和该年第一天为星期几,未完待续
分类:pc28.am神测网

(一)

《卓越c程序100例》那一个文章是笔者在百度文库中看到的,见到这些随笔心境特别感动,相当多谢原创者的赫赫进献!太伟大了!!以为里面包车型地铁小例子拿来用于演练很能够活跃算法思维。 

那是自家个人对这几个主题材料掌握,也会有一点糊涂,仅供参照他事他说加以考察。


1.

(1卡塔尔国标题 求圆面积和周长  输入圆的半径,总计圆的周长和面积。
(2)流程图
图片 1
(3卡塔尔国测量检验数据及运维结果
图片 2
图片 3
(4卡塔尔实验深入分析

   问题1:输出的时候只有数字没有求的变量
   原因:在输出的时候双引号后面要写 变量

正文首假使用C 实现《优质c程序100例》

题目:

2.

(1卡塔尔国标题输入二个几人年份,判定其是还是不是是闰年。闰年的辨别条件是该年年份能被4整除但不能够被100整除、恐怕能被400整除。
(2)流程图
图片 4
(3卡塔尔测量试验数据及运转结果
图片 5
图片 6
(4卡塔尔实验解析

             问题1:有个别特殊的年份在输出程序的时候错误
              原因:把三个条件分开来写导致错乱

以下顺序已经在VC 6.0中调治将养。

       编写程序,提醒顾客输入年份和表示该年第一天是星期几的数字,然后在决定台上呈现该年的日历表。

调控台彰显结果如下:(笔者用_表示空格)

图片 7

图1:以2018年为例

3.

(1卡塔 尔(英语:State of Qatar)标题 校正第2题,输出1976年现今全数的闰年
(2)流程图
图片 8
(3卡塔尔测量试验数据及运营结果
图片 9
(4卡塔 尔(英语:State of Qatar)实验解析

             问题1:输出结果没有出现哪一年是闰年
             原因:在输出的时候双引号后面没有 年份

 

率先,说一下笔者感觉在做那道题此前须要想到的多少个要点:

1,首先,要看清输入的年度是常年依然闰年,判定闰年的条件是能被4整除且无法被100整除,或能 被400整除

  这里,作者写了七个独立的函数用来代表

图片 10

图2:判别是还是不是为闰年

2,第二,判定完平年照旧闰年今后,还亟需摄取每月的大运,需求潜心,一月的运气和常年闰年有关联

  这里笔者使用的是switch语句,也能够利用循环等得到天数,1月的命局调用了前头决断是还是不是为闰年的方法

图片 11

图3:判定各类月的天数

3,最终,在知道各类月的气数后,供给知道前些时间的率后天从星期几方始,那时候就供给拿到各种月开首的星期数:(最近的天数%7 下三个月底后天的星期数)%7

  这里首先个月的星期数是由顾客手动输入获取的,所以,第2个月的星期数,正是她自己,第二个月的星期数是前面一个月,约等于首先个月的星期数,用递归调用相比较方便

图片 12

图4:获取各种月第一天是星期几

4.

(1卡塔尔国题目改正第2题,输入年份和月份,决断下月有多少天。
(2)流程图
图片 13
(3卡塔尔国测量试验数据及运营结果
图片 14
图片 15
图片 16
(4卡塔尔国实验剖判

             问题1:不明白2月跟其他月怎么分开?
             原因:忘记了选择框图

【程序1】标题:由1、2、3、4个数字,能整合几个互不相像且无重复数字的三个人数?都以多少?

当本身写到这里的时候,作者还未有考虑7天换行的主题素材,就只是看能否在科学的职位输出每一种月的大器晚成号,于是从头写main函数

这里,kl为本人的类名,(注:类名首字母要大写,不要像自家相近小写),_代替空格

图片 17

图5:main函数内部得以达成

5.

(1卡塔尔国题目程序随机发生一个100以内的整数,客商输入猜的数字,只可以猜壹遍,判别是或不是猜对了, 借使猜错了,则注解猜大了或然猜小了。
(2)流程图
图片 18
(3卡塔 尔(英语:State of Qatar)测量检验数据及运转结果
图片 19
图片 20
(4卡塔 尔(英语:State of Qatar)实验深入分析

             问题1:本道题没有问题
              原因:

1.     程序主体效用深入分析:先完毕填在百位、11人、个位的数字都以1、2、3、4,组成全体的排列后再消逝去掉不满足条件的排列。

由此运维后,得出下图所示的结果:

图片 21

图6:没写换行的周转结果

说真话,见到那一个结果,着实吓了生机勃勃跳,随时,笔者就意识,笔者没写换行,不过种种月的第一天所在星期数是准确的,依旧窃喜了一小下

6.

(1卡塔 尔(英语:State of Qatar)题目改良第5题,顾客最多能够猜十二次,要是猜对了,输出猜没有错次数,就算十二回都没猜对,输出准确答案。
(2)流程图
图片 22
(3卡塔 尔(阿拉伯语:قطر‎测量试验数据及运维结果
图片 23
图片 24

(4卡塔 尔(阿拉伯语:قطر‎实验深入分析

             问题1:不能循环输入n
              原因:输入n框放在了循环框图的上面导致如此

(二)

 我的结对编程同学是范凯华同学,他的博客地址链接为http://www.cnblogs.com/fkh1/


 我觉得C语言这门学科只要你认真思考,认真学习,钻研就可以学好,然后跟同学一起思考问题,一起解决问题,也是一种乐趣。编程原来感觉很困难,不能接受,但经过了这次作业之后感觉心里没有那么大的难受了,可以接受了,经过这次作业之后我收获了要努力钻研的态度,不能放弃的心 ,相信了只要你想就肯定可以做出来的意识。

程序代码:

接下去就起来换行的操作

换行的话,正是每到星期六就换行,Sun对应的值是0,Sat对应的是6,相当于说,要咬定当days为6时换行,就是剖断days为星期几,小编的思绪是,同一天的日子加上前段时期开端的星期数余7正是日前些天期的星期数,然而要注意,过阵子起初的星期数是从0伊始的,所以,一句话来讲:

#include <iostream>
using namespace std;
int main()
{
    /*以下为三重循环*/
    for (int i=1;i<5;i  ) 
    {
        for(int j=1;j<5;j  )
        {
            for(int k=1;k<5;k  )
            {
                if((i!=k)&&(i!=j)&&(j!=k))
               /*确保i、j、k三位互不相同
                     加上括号可以增加程序的可读性 */
                cout<<i<<j<<k<<endl;
            }
        }
    }
    return 0;
}

脚下日子的星期数= (当前不久期 后一个月最早的星期数-1)%7

图片 25

图7:剖断当前时局是星期几

判别完当前时局之后,即就要main函数里应用了,使用要

2.     增多计算个数的效果与利益:

认清当前命局是还是不是为周6,进行换行:

将以下语句放在图5的红线出就能够,在if条件里调用dWeak函数

图片 26

图8:决断是还是不是为星期六

#include <iostream>
using namespace std;
int main()
{
    int n=0;
    /*以下为三重循环*/
    for (int i=1;i<5;i  )
    {
        for(int j=1;j<5;j  )
        {
            for(int k=1;k<5;k  )
            {
                if((i!=k)&&(i!=j)&&(j!=k))
                    /*确保i、j、k三位互不相同*/
                {
                    cout<<i<<j<<k<<endl;
                    n  ;
                }
            }
        }
    }
    cout<<"由1、2、3、4个数字,能组成"<<n<<"个互不相同且无重复数字的三位数!"<<endl;
    return 0;
}

如此这般就足以了,运转结果后,就能现出图1的样式


如上,是自个儿在写完事后的片段接头,借使有越来越好的办法应接告知(^w^)

最后,用一张图片停止吗

图片 27

运维结果跟数学生运动算的逻辑推演结果后生可畏律,4*3*2=24种(以百位最初推理,百位有4种采用,百位的数字明确后选择后11人有3种趋势选拔,而当百位和10个人的数字都规定后则个位有2种趋向选取卡塔 尔(英语:State of Qatar)。 

==============================================================

【程序2】

难题:集团发放的奖金依照利益提成。利益(I)低于或等于10万元时,奖金可提百分之十;利益大于10万元,低于20万元时,低于10万元的一些按10%提成,高于10万元的部分,可可提成7.5%;20万到40万中间时,高于20万元的有的,可提成5%;40万到60万之间时超越40万元的局地,可提成3%;60万到100万里边时,高于60万元的片段,可提成1.5%,高于100万元时,抢先100万元的豆蔻梢头部分按1%提成,从键盘输入前段时期利益I,求应发放奖金总额?

1.顺序解析:请利用划分金额作为分界,分品级总计。程序中,把奖金和净收益定义为长整型,假诺急需小数点可依据实际须要定义为实型等此外数据类型。

2.程序源代码:

#include <iostream>
using namespace std;
int main()
{
    long int i;
    int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    cout<<"请输入利润(I),要求必须是数字:";  
    //测试的时候如果输入的是小数,编译器会自动隐式转换为整型

    cin>>i;
    bonus1=100000*0.1;
    bonus2=bonus1 100000*0.075;
    bonus4=bonus2 200000*0.05;
    bonus6=bonus4 200000*0.03;
    bonus10=bonus6 400000*0.015;   

    if(i<=100000)
    {
        bonus=i*0.1;
    }
        else if(i<=200000)
        {
            bonus=bonus1 (i-100000)*0.075;
        }
            else if(i<=400000)
            {
                bonus=bonus2 (i-200000)*0.05;
            }
                else if(i<=600000)
                {
                    bonus=bonus4 (i-400000)*0.03;
                }
                    else if(i<=1000000)
                    {
                        bonus=bonus6 (i-600000)*0.015;
                    }
                        else 
                            bonus=bonus10 (i-1000000)*0.01;
    cout<<bonus<<endl;
    if(bonus<=0) cout<<"奖金小于等于0,不用发奖金"<<endl;
/* 
如果企业实际执行,利润亏损需要罚钱,可以删除"if(bonus<=0) cout<<"奖金小于等于0,不用发奖金"<<endl;"该句提示语。
*/
    return 0;
}

假使输入的是负数,即利益为负数,业绩亏本,系统也是会安份守己低于或等于10万元时的奖金根据10%算,算出来的结果是负数,即需求对其进展扣钱处置罚款。假使公司实际奉行,只发奖金不扣钱,能够透过"if(bonus<=0) cout<<"奖金小于等于0,不用发奖金"<<endl;"该句给客户提醒!

  ==============================================================

【程序3】

标题:三个平头,它助长100后是贰个截然平方数,再增添168又是三个通通平方数,请问该数是有些?

  1. 前后相继解析:

全然平方即用五个整数乘以自个儿举个例子1*1,2*2,3*3之类,由此及彼。若贰个数能表示成有些自然数的平方的花样,则称这些数为完全平方数。

隔壁的几个精光平方数的差=n*n-(n-1)*(n-1)=2n-1。

 假诺题目中的整数加它助长100后,再加上168的一心平方数开平方后的值为n。

则其隔壁的五个精光平方数的差=2n-1<=168;

n<=84.5;

而n必需是整数,则n<=84,n*n<=84*84,则(a 268卡塔 尔(阿拉伯语:قطر‎小于7056,该是小于1万的。

我们参谋《精华c程序100例》该作品,设置程序增到在10万以内判定,能够作证我们从前的测算。

将难点中的该整数设为a,该数a加上100后是一个完全平方数(设该完全平方数开药方后也正是整数x卡塔尔国,再增加168又是一个截然平方数(设该完全平方数开药方后非常整数y卡塔 尔(阿拉伯语:قطر‎,如果开药方后的结果满意该条件,正是结果。

x*x=a 100;

y*y=a 268; 

2.程序源代码:

#include <iostream>
#include "math.h" 
using namespace std;
int main()
{
    long int a,x,y;
    for(a=1;a<100000;a  )
    {
        x=sqrt(a 100); //x为(a 100)后开平方的结果
        y=sqrt(a 268);//y为(a 268)后开平方的结果
        if((x*x==(a 100))&&(y*y==(a 268)))
        {
            cout<<a<<endl;
        }
        //如果一个数的平方根的平方等于该数,这说明此数是完全平方数
    }

    return 0;
}

运营结果:

21

261

1581

 

说明:

1、math.h是与数学生运动算相关的头文件,很常用。

贴近的还大概有stdio.h也是与专门的学业输入输出相关的头文件,也很常用。

例如计算机安装了VC ,可以查找一下微机,后缀名称为.h的文件就领会有如何标准头文件了。

常用的头文件充足多,假诺常常用的时候不完全精通可能非常的小精晓的时候,当您用到哪些函数,去msdn援助文件里搜一下,就通晓该富含怎么着头文件了,轻巧又异常的快

要是还是不打听,能够百度 谷歌(Google卡塔 尔(阿拉伯语:قطر‎,只怕找朋友咨询。 

2、sqrt函数是用来平方根总括的函数

功 能: 计算叁个非负实数的平方根

函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double);

VC 2009后为重载函数,原型为 float sqrt (float),double sqrt (double),double long sqrt(double long)

留意未有int sqrt (int) 

3、原文《经典c程序100例》中用printf("%ldn",i)输出。

%ld 是 printf 函数和此外雷同函数中的输出格式调节符, 意思是出口长整型。 

C语言中%d和%ld之间的界别:

%d是按整型输出,在C语言中是十几个人的二进制数范围-32768——32767

%ld是按长整型输出,长度是整型的2倍叁九位,范围-2147483648---2147483647

 

 

==============================================================

【程序4】

主题素材:输入某年某月某日,判定这一天是那个时候的第几天?

1.前后相继解析:以二月5日为例,应该先把前多个月的加起来,然后再加上5天即今年的第几天,特殊情状,闰年且输入月份大于3时需思量多加一天。

2.程序源代码: 

#include <iostream>
#include "math.h" 
using namespace std;
int main()
{
    int day,month,year,sum,leap;

    cout<<"请输入年份:";
    cin>>year;
    cout<<"n请输入月份:";
    cin>>month;
    cout<<"n请输入日期:";
    cin>>day;


    switch(month)
    {
        case 1:sum=0;
            break;
        case 2:sum=31;
            break;
        case 3:sum=59;
            break;
        case 4:sum=90;
            break;
        case 5:sum=120;
            break;
        case 6:sum=151;
            break;
        case 7:sum=181;
            break;
        case 8:sum=212;
            break;
        case 9:sum=243;
            break;
        case 10:sum=273;
            break;
        case 11:sum=304;
            break;
        case 12:sum=334;
            break;
        default:cout<<"输入的月份错误!";
            break;
    }

    sum=sum day;//再加上某天的天数
    if(year@0==0||(year%4==0&&year0!=0))  //判断是不是闰年。
        //此外,上行也可以写为if((year@0==0)||((year%4==0)&&(year0!=0)))
        leap=1;
        else 
            leap=0;
    if(leap==1&&month>2)  //如果是闰年并且月份大于2,总天数应该加1天
    {
        sum  ;
    }
    cout<<"It is the "<<sum<<"th day of "<<year<<"!"<<endl;
    return 0;
}

运转结果1:

请输入年份:2003(假诺客商输入二〇〇〇卡塔尔国

请输入月份:3 (假使客商输入3卡塔尔国

请输入日期:7 (若是顾客输入日期7卡塔 尔(英语:State of Qatar)

It is the 66th day of 2001!

 

运维结果2:

请输入年份:二〇〇四(假若顾客输入2002卡塔尔

请输入月份:4 (倘诺顾客输入4卡塔尔国

请输入日期:5 (倘诺客户输入日期5卡塔 尔(阿拉伯语:قطر‎

It is the 96th day of 2000!

 

运营结果3:

请输入年份:贰零零叁(假诺客户输入2003卡塔 尔(阿拉伯语:قطر‎

请输入月份:13 (若是客商输入13,测验输入错误月份提示语卡塔尔国

请输入日期:9 (假若客商输入日期9卡塔 尔(阿拉伯语:قطر‎

输入的月份错误!It is the -858993450th day of 二零零二!

 

从调节和测量检验结果3来看假如输入的月份错误会有提醒,不过要是输入的日子错误,未有提醒。该程序有待改善。

因为涉及到每一个月份的造化不等同。

里头1-八月个别为31天,28天(闰年为29天),31天,30天,31天,30天,31天,31天,30天,31天,30天,31天。该程序关于日期输入错误的提示功效模块,因为篇幅有限就不再赘述,初阶思索能够信守28,29,30,31四类天数用switch语句实现。

 

以下是摘录自百度百科中有关“闰年”的介绍:

闰年(Leap Year)是为着弥补因人工历法则定形成的年份天数与地球实际公转周期的光阴差而开设的。补上时间差的年份为闰年。

正确总结情势

(按三回归年365天5钟头48分45.5秒卡塔 尔(英语:State of Qatar)
  ①、普通年能被4整除且不能够被100整除的为闰年。(如贰零零贰年正是闰年,一九〇四年不是闰年卡塔尔
  ②、世纪年能被400整除的是闰年。(如贰零零壹年是闰年,一九零一年不是闰年)
  ③、对于数值比一点都不小的年份,这个时候只要能整除3200,何况能整除172800则是闰年。如172800年是闰年,86400年不是闰年(因为即便能整除3200,但不可能整除172800)(此按二次归年365天5h48'45.5''计算卡塔 尔(英语:State of Qatar)。
  别的,如遵照现存太阳年的长度与上述闰年法规,每8000年又约差十四五日,因而John·赫歇尔提出每逢4000的倍数不闰,如西元4000年。但距此一年份光顾尚有约二千年之遥,由此还没曾真正归入准则或试行过。又由于地球公转速率的不稳定与众多影响因素,届期是否须求归入此准绳依然有疑点。

 

 

==============================================================

【程序5】

难题:输入八个整数x,y,z,请把那多个数由小到大出口。

1.前后相继剖析:首先,大家将x与y实行比较,要是x>y则将x与y的值举行置换(若是本身x<=y则不沟通保持原状),进而达成了x和y的值依据从小到大排序。然后再用x与z实行比较,借使x>z则将x与z的值举行交流,那样能使x最小。

    最终再将y和z的值举办比较,假使y>z则将y和z的值举行沟通。再将x,y,z输出。

2.程序源代码:

#include <iostream>
using namespace std;
int main(void)
{
    int x,y,z,t;
    cout<<"请输入3个整数n";
    cout<<"第一个整数:";
    cin>>x;
    cout<<"第二个整数:";
    cin>>y;
    cout<<"第三个整数:";
    cin>>z;
    if (x>y)
    {
        t=x;
        x=y;
        y=t;
    } /*交换x,y的值*/
    if(x>z)
    {
        t=z;
        z=x;
        x=t;
    }/*交换x,z的值*/
    if(y>z)
    {
        t=y;
        y=z;
        z=t;
    }/*交换z,y的值*/
    cout<<"三个数从小到大,分别为:n"<<x<<endl;
    cout<<y<<endl;
    cout<<z<<endl;
return 0;
}

 

==============================================================

【程序6】

题目:用*号出口字母C的图画。

1.顺序剖析:可先用'*'号在纸上写出字母C,再分行输出。

2.程序源代码:

兑现形式风流洒脱:

#include <iostream>
using namespace std;
int main()
{
    cout<<"Hello C-world!n";
    cout<<" ****n";
    cout<<" *n";
    cout<<" * n";
    cout<<" ****n";

    return 0;
}

贯彻际景况势二:

#include <cstdio> //定义输入/输出函数
int main()
{
    printf("Hello C-world!n");
    printf(" ****n");
    printf(" *n");
    printf(" * n");
    printf(" ****n");

    return 0;
}

 

==============================================================

【程序7】

主题素材:输出特殊图案,请在C 情状中运维,看大器晚成看,Very Beautiful!

1.程序剖判:提醒输出的是扩大ASCII码      

2.程序源代码:

#include <cstdio> //定义输入/输出函数
int main()
{
    char a=176,b=219;
    printf("%c%c%c%c%cn",b,a,a,a,b);//%c是换成ASCII码输出
    printf("%c%c%c%c%cn",a,b,a,b,a);
    printf("%c%c%c%c%cn",a,a,b,a,a);
    printf("%c%c%c%c%cn",a,b,a,b,a);
    printf("%c%c%c%c%cn",b,a,a,a,b);
}

直白复制造进程序到VC 6.0中观看的结果如下,居然是乱码!!

图片 28

真挚的以为不完美!以为被难题骗了!

新生改变思路想一下,可能是何地设置不对。

百度了瞬间,找到了原由:编号在128~255的是扩展的编码,原来不是用作显示用的,并且大家的操纵台默许代码页是“936 (ANSI/OEM -简体汉语GBK)”。借使要显得扩张ASCII码,则将实践这几个顺序的调整台的的代码页改为 437 (OEM-美利坚合众国卡塔尔 就能够!
在刚刚乱码的主宰台窗口标题栏上 右键--》暗许值--》默许代码页  改正为437,再一次运路程序就观看了。

图片 29

 

 

==============================================================

【程序8】

题目:输出9*9口诀。

1.顺序深入分析:分行与列思虑,共9行9列,i调控行,j调整列。

2.程序源代码:

#include <cstdio>
int main()
{
    int i,j,result;
    printf("n");
    for (i=1;i<10;i  )
    {
        for(j=1;j<10;j  )
        {
            result=i*j;
            printf("%d*%d=%-3d",i,j,result);//%-3d表示输出左对齐,占3位
        }
        printf("n");//每一行后换行
    }
    return 0;
}

运行结果如下图 能够看见等号前面3位是左对齐的,进而酿成了井井有理的排列:

图片 30

=--可以指定宽度,不足的左边补空格
%-3d--左对齐 表示输出的内容左对齐,输出结果共有3位,不足的话,在结果最后用空格补足占3位
d---一种左边补0 的等宽格式,比如数字12,d出来就是: 012

 

==============================================================

【程序9】

标题:须求输出国际象棋棋盘。

1.前后相继解析:用i调节行,j来调控列,依照i j的和的调换来支配输出黑方格,依旧白方格。

2.程序源代码:

#include <cstdio>
int main()
{
    int i,j;
    for(i=0;i<8;i  )
    {
        for(j=0;j<8;j  )
        {
            if((i j)%2==0)
            {
                printf("%c%c",219,219);
            }
            else
                printf("  ");//注意双引号里面是两个空格

        }
        printf("n");
    }
    return 0;
}

%c是换来ASCII码输出,跟下边包车型大巴【程序7】相近必要安装调控台默许代码页为437 (OEM-United States卡塔 尔(英语:State of Qatar)后再运路程序。
运转结果:

图片 31

 

【程序10】

主题素材:打字与印刷楼梯,相同的时候在阶梯上方打字与印刷三个笑颜。

1.程序解析:用i调控行,j来调整列,j根据i的变通来调节输出黑方格的个数。

2.程序源代码:

#include <cstdio>
int main()
{
    int i,j;
    printf("11n");//输出两个笑脸
    for(i=1;i<11;i  )
    {
        for(j=1;j<=i;j  )
        {
            printf("%c%c",219,219);
        }
        printf("n");
    }
    return 0;
}

运行结果能够看来如下:

 

图片 32

 

 

经典c程序100例==11--20

 

【程序11】

标题:古典难点:有风度翩翩对兔子,从降生后第2个月起各类月都生生龙活虎对兔子,小兔子长到第七个月

   后每种月又生风度翩翩对兔子,借使兔子都不死,问各种月的兔子总量为多少?

1.主次解析: 兔子对数的规律为数列1,1,2,3,5,8,13,21....

2.程序源代码:

#include <iostream>
using namespace std;
int main()
{
    long f1,f2;
    int i;
    f1=f2=1;
    cout<<"每个月兔子的总对数,分别为:n";
    for(i=1;i<=20;i  )
    {
    printf("ld ld",f1,f2);
    if(i%2==0)
    {
    printf("n");//控制输出,每行4个

    }
    f1=f1 f2;/*前两个月加起来赋值给第三个月*/
    f2=f1 f2;/*前两个月加起来赋值给第三个月*/
    }
    return 0;
}

出口结果:

图片 33

 

==============================================================

【程序12】

题目:剖断101-200之内有稍许个素数,并出口全数素数。

1.前后相继深入分析:

推断素数的不二等秘书诀:用叁个数分别去除2到sqrt(这些数),纵然能被整除,则表明此数不是素数,反之是素数。

因为偶数长久不容许为素数,所以从101起来,每一遍扩张2,也正是只思量奇数。
对此每贰个奇数k,从2到k-1,如若在2到k-1之间找到能被k整除的数字,也正是约数,自然不是素数了。        

2.程序源代码:

#include <iostream>
#include <cmath> 
using namespace std;
int main()
{
  int m,i,k,h=0,leap=1;
  cout<<"n";//C  中尽量不要少用printf函数,printf("n");
  for(m=101;m<=200;m  )
  {
    k=sqrt(m 1);//sqrt()函数,计算平方根
    for(i=2;i<=k;i  )
    {
        if(m%i==0)
        {
            leap=0; 
            break;//这里break;是跳出for循环
        }
        //其他的情况下,leap值没有被修改依旧为1。
   }//如果leap=1的,则为素数,下面实现输出。
    if(leap)//if(leap)这里也可以写成 if(leap==1)
    {
        printf("%-4d",m);//%-4d控制输出左对齐并占4位。
        h  ;
        if(h==0)//控制每行输出10个数字
        printf("n");   
    }
    leap=1;
  }
  printf("nThe total is %dn",h);

    return 0;
}

程序说明:

1、关于if(leap):

if(leap) 那样判别会被活动转产生三个Boolean量来展开流程的操纵,会转产生 true and false 三个量而你说的leap == 1 则只是只是的恒值的可比。

简言之的来讲,倘使leap = 5,在if(leap){} 这么些姿势中是成立的,为true而在if( leap == 1){} 则是为假的。

写程序思维须求十分的小心。

2、%-4d的作用:
展现位宽为4的卡尺头(便是数字个数为4,远远不够4的会空出来凑4个,多了就随意了,照原数据出口卡塔尔而“-”使得数据从右侧被输出(左对齐卡塔 尔(英语:State of Qatar)。
例如:
  int x=12234;
 printf("%-4d",x);
出口结果是12234.

3、关于为什么是从2到sqrt:

因为,要是a是合数,则a必有叁个因数不高于根号a。

以下是认证:

设a为合数,则a=pq,不妨设 2 <= p <= q。

则 a = pq >= p² 即 p<= 根号a。

证实达成!

本来假让你一代向来不想到是从2算到sqrt,也足以从2算到a(只是Computer多算一些日子卡塔尔国。

4、关于break

break只好用于循环和switch里,它的职能是跳出意气风发层循环也许贰个分支switch。是照准方今的可怜。

if语句是选择分支语句不是循环。for,while,do while是循环

if语句是顺序执行的,执行完了就结束了。

题外话,continue只是对于循环有效,对于if等其他不是循环的都无效。

 

==============================================================

【程序13】

主题素材:打字与印刷出富有的“水仙花数”,所谓“姚女子花剑数”是指二个四位数,其各位数字立方和相当该数

   本人。举个例子:153是三个“金盏银台数”,因为153=1的三次方+5的三次方+3的一回方。

1.主次分析:利用for循环调整100-9九十九个数,每一个数分解出个位,九个人,百位。

2.程序源代码:

#include <iostream>
int main()
{
    int i,j,k,n;
    std::cout<<"'water flower' number is:";
    for(n=100;n<1000;n  )
    {
        i=n/100;//分解出百位
        j=n/10;//分解出十位
        k=n;//通过求余取出个位
        if(i*100 j*10 k==i*i*i j*j*j k*k*k)
        {
            std::cout<<n<<"t";
        }
    }
    std::cout<<"n";
    return 0;
}

程序输出结果为:

姚女花数是:153  370  371  407

图片 34

 

 此中大家兴许会对:

i=n/100;//分解出百位

j=n/百分之十10;//分解出十二人

k=n;//通过求余收取个位

是或不是确实不错地抽取了有着狐疑。

输入以下,测量检验注脚是或不是会现身系统活动小数点后逢五进大器晚成的难题。

#include <iostream>
int main()
{
    int i;
    i=679;
    std::cout<<i/100<<std::endl;//分解出百位检查
    std::cout<<i/10<<std::endl;//分解出十位检查
    std::cout<<i<<std::endl;//个位检查
    return 0;
}

测验结果输出了:

6

7

9

 

 

ASCII码字符共有2六20个。差别字符,图形不一样样。

本文由pc28.am发布于pc28.am神测网,转载请注明出处:已知年和该年第一天为星期几,未完待续

上一篇:Pangolin学习 下一篇:没有了
猜你喜欢
热门排行
精彩图文