C语言程序设计(二)

目录:     1.算法基本概念

      2.认识循环语句

      3.算法的表示法

      4.求素数

      5.求闰年

      6.判断一个数是否为回文数

算法基本概念:

  (一)一个程序主要包含的2方面信息:

    1.对数据的描述,在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构

    2.对操作的描述,即要求计算机进行操作的步骤,也就是算法

    形象的比喻:厨师制作菜肴需要有菜谱,菜谱上一般都说明了所用配料和操作步骤,所用配料指出了做出所指定菜肴应该用到哪些食材,这个就相当于数据结构,操作步骤指出了食材应该按照怎样的步骤进行加工才能做出菜肴,就相当于算法。

  (二)沃思提出的一个公式    算法+数据结构=程序

  (三)计算机算法可分为2大类:数据运算算法(如求方程的根,求一个函数的定积分)和非数值运算算法(如对一批职工按姓名进行排序,图书检索)

  (四)算法的特性:1.有穷性(算法的操作步骤必须是有限的,而不能是无限的)

           2.确定性(算法的每一个操作步骤必须是确定的,不能是模糊的。比如说把手举过头顶,那么是上手举过头顶还是左手或者右手举过头顶,举过头顶多少厘米,不同的人可能有不同的理解。算法的每一个操作步骤不应该被解释成不同的含义,而应该是明确无误的)

           3.有零个或多个输入(所谓输入就是计算机在执行算法时需要从外界获得必要的信息)

           4.有一个或多个输出(算法的目的是为了求解,计算机是为人来服务的,它所求得的结果必须向外呈现给用户,如果这个结果只是计算机自己清楚也是没有意义的)

           5.有效性(计算机的每一步操作必须确定有效的执行,例如1除以0,0是不可以被任何数相除的,所以它是无效的)

 

 

 

认识循环语句:

向屏幕输出1-100这几个整数的值.c

会输出1-100

 

 

  while语句 循环结构,如果程序运行这个while语句,会首先判断表达式i <= 100是否为真,如果为真就执行花括号里的内容,花括号里的内容执行完毕后会再来判断表达式是否为真,如果为假,程序的执行就跳转到了花括号的末尾。

  分析上图语句:首先定义了一个整型变量i使它的值为1,然后程序来判断i的值是否小于等于100,然后程序成立,然后就执行花括号里的内容。花括号里首先把i的值1给给输出,然后把i+1的值又赋给了i,此时i的值增加了1为2,然后再来判断i的值是否小于等于100,成立,程序就会再次执行花括号里的内容,就会把i的值给输出i的值变为了3。直到i为100程序就会跳转到花括号的末尾执行return 0。

 

输出1-100

 

 

   for语句  首先会执行小括号里最左变的表达式,定义一个变量i并给它赋一个初值1,然后会判断小括号中间的表达式是否成立,如果成立会执行后面的控制语句printf,再然后就会执行小括号里最右边的表达式i = i+1(也可以写成i += 1或者写成++i或i++),紧接着会判断中间的表达式是否成立,如果不成立就会跳出for循环,程序的执行就跳转到了return 0,for循环默认的控制语句为1句,如果为多句就需要加上一个花括号:

 

i++和++i的区别:

 

 

 

 

 

 

算法的表示法:

  (一)自然语言表示法

  (二)用流程表示法

    1.美国国家标准化协会(ANSI)规定了一些常用的流程图符号

  

 

 

   2.例,求1x2x3x4x5(求5的阶乘)

 

 

用流程图形式表示伪代码(其中右边图圆1是连接点,表示这两个点是互相连接在一起的,实际上它们是同一个点,画不下才分开来画,用连接点可以避免流程线交叉或过长使流程图更加清晰):

 

 

 

 

 

 

 

   3.传统流程图的弊端:

  对流程图的使用没有严格限制,使用者可以不受限制的使流程图随意的转来转去。乱麻一样的算法称之为BS型算法,意为一碗面条(a bowl of spaghetti)。

  4.三种基本结构

直到型基本不会用

 

 

   (三)N-S 流程图表示法

 

 

   例:求1x2x3x4x5

 

  (四)伪代码表示法

    它是介于自然语言和计算机语言的一种描述的文字和符号表示法

 

 

 

求素数.c

 

   判断17是否为一个素数,就需要通过for循环来找一下除了1和它本身以外的因数有哪些,没有必要让17对2,3,4一直到17进行取余,只要让17对2,3,一直到对根号下17取余就可以了,因为如果它有因数,那么这些因数都是关于它的开平方数对称的,所以for循环里终止条件i <= a-1中i <=根号下a就可以了。

 

 

 

 

 

  求闰年.c

 

 

 

 

  判断一个数是否为回文数.c

 

 

 

 

 

posted @ 2020-02-20 22:00  XANN  阅读(516)  评论(0编辑  收藏  举报