加载中…
  
博文
标签:

打印出以下的杨辉三角形

分类: 趣味小程序

案例四:打印出以下的杨辉三角形(要求打印出10行)。

1

1

1

1

1

┇  ┇  ┇ 

1.程序分析:

   杨辉三角形是(a+b)n展开后各项的系数。例如:

(a+b)0展开后为1                                 系数为1

(a+b)1展开后为a+b                               系数为1,1

(a+b)2展开后为a2+2ab+b2   

(2007-03-28 22:13)
标签:

打印出以下图案

分类: 趣味小程序

案例二:打印出以下图案:

*

                         * * *

* * * * *

* * * * * * *

* * * * * * * * * *

* * * * * * *

* * * * *

* * *

*

1.程序分析:

   (1)打印前5行。前5行中第i行的打印可分为3步。

     第1步:打印2*(5-i)个空格;

     第2步:打印2*i-1个“*”,并在每个“*”后加一个空格;

     第3步:换行。

   (2)打印后4行。后4行中第i行的打印可以分为3步。

     第1步:打印2*i个空格;

     第2步:打印2*(5-i)-1个“*”,并在每个“*”后加一个空格;

     第3步:换行。

4.程序源代码:

   main ( )

{

int i,j,k;

      for (i=

标签:

给出一百分制成绩,要求输出成绩等级abcde

分类: C/C++

案例五:给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

1.程序分析:

   设成绩用score表示,并且score为整型数据。若score≥90,score可能是100,99,…90,把这些值都列出来太麻烦了,可以利用两个整数相除,结果自动取整的方法,即当90≤score≤100时,score/10只有10和9两种情况,这样用switch语句来解决便简便了。

程序源代码:

   main( )

     {

float score:

char grade;

printf(“请输入学生成绩:”);

scanf(“%f”,&score);

while(score>100||score<0)

{

printf(“\n输入有误,请重输。”);

scanf(“%f”,& score);

}

switch((int)( score/10))

{

case 10:

case 9:grade=’A’;break;

case 8:grade=’B’;break;

case 7:grade=’C’;break;

case 6:grade=’D’;break;

case 5:

case 4:

case 3:

case 2:

case 1:

ca

标签:

求1234……100的值

分类: C/C++

案例三:求1+2+3+4+……+100的值。

1.程序分析:

   这是一个数学的累加问题,我们可以这样分析计算过程:假设存在一个容器,初始为空,第一次投入1个球,第二次投入2个球,依此类推,直到第100次投入100个球,此时容器中球的个数即为投入球的总和。按照这一思想,我们可以构建以下算法:

   (1)声明一个变量(sum)作为“容器”存放加法的和,并设置初值为0;

   (2)将1加入sum;

   (3)将2加入sum;

   (4)将3加入sum;

    

   (101)将100加入sum;

   (102)输出sum的值。

   可以看出,步骤(2)~步骤(101)描述的是相同的动作,因此可以描述为一个重复过程:

(1)定义变量sum,并置初值为0;

(2)设置变量i,初值为1;

(3)将i加入sum;

(4)i的值增加1;

(5)当i<=100成立时,重复执行步骤(3)和步骤(4);当i>100时,执行步骤(6);

(3)输出变量sum的值。

程序源代码:

m

标签:

用选择法对10个整数排序(从小到大)

分类: C/C++

案例二:用选择法对10个整数排序(从小到大)。

1.程序分析:

所谓选择法就是先将10个数中最小的数与a[0]对换;再将a[1]到a[9]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。

下面以5个数为例说明选择法的步骤。

a[0]  a[1]  a[2]  a[3]  a[4]

                      未排序时的情况

                      将5个数中最小的数1与a[0]对换

                     将余下的4个数中最小的数3与a[1]换

      3&nbs

标签:

爱因斯坦的阶梯问题

分类: 趣味小程序

案例三:爱因斯坦的阶梯问题:设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;每步跨7阶,正好到阶梯顶。问该阶梯共有多少阶。

1.程序分析:

   设阶梯数为x,则依据题意有:

   (2)x%3=2

   (3)x%5=4

   (4)x%6=5

   (5)x%7=0

   由条件(1)和条件(5)知,阶梯数一定为奇数,并且为7的倍数,因此,我们可以依次对7,7+14,7+14+14,…用条件(2)、(3)、(4)进行测试,从而求出答案。

2.程序源代码:

   main( )

     {

int x=7;

while(!(x%3= =2&&x%5= =4&&x%6= =5))

{

x+=14;

}

printf(“The number of the ladders is:%d\n”,x);

}

3.程序运行结果:

   The number of the ladders is:119

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有