目录:     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

C语言程序设计(二)的更多相关文章

  1. Python语言程序设计之二--用turtle库画围棋棋盘和正、余弦函数图形

    这篇笔记依然是在做<Python语言程序设计>第5章循环的习题.其中有两类问题需要记录下来. 第一是如何画围棋棋盘.围棋棋盘共有19纵19横.其中,位于(0,0)的星位叫天元,其余8个星位 ...

  2. C语言程序设计入门学习五步曲(转发)

    笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...

  3. 160809208沈昊辰c语言程序设计实验选择结构设计

    <C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...

  4. C语言程序设计第4堂作业

    大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决.   本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...

  5. 《VB语言程序设计(第3版)》总结

    我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...

  6. 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总

    中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  7. C语言程序设计第一作业

    C语言程序设计第一作业 实验总结 (一) 1.题目:输入圆的半径,求圆周长和面积 2.流程图: 3.测试数据及运行结果: 4.实验分析: 问题1: 出现了错误 原因:是在赋值那写反了 解决方法:应该是 ...

  8. C语言程序设计第六次作业——循环结构(2)

    C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...

  9. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  10. 2018年秋季学期《c语言程序设计》编程总结

    <c语言程序设计>第四周编程总结 <c语言程序设计>第五周编程总结 <c语言程序设计>第六周编程总结 <c语言程序设计>第七周编程总结 <c语言程 ...

随机推荐

  1. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.21)-- Host Operation with Asymmetric Namespace Access Reporting

    8.21 使用ANA报告的主机操作 8.21.1 主机ANA普通操作 主机通过在Identify Controller数据结构中CMIC域的第3位来判断是否支持ANA.NSID或标识(参考第7.10章 ...

  2. 为什么hashmap的容量永远要是2的次方

    源码hashmap.java文件中有个函数叫tableSizeFor(),他的作用是,通过-1>>>n-1返回一个大于n的最小二次幂,n为map之前的容量,而函数返回值就是扩容的二次 ...

  3. 12c的PDB创建DIRECTORY要注意与PATH_PREFIX的关系(ORA-65254)

    在创建PDB过程中如果使用了带PATH_PREFIX的参数,意味着在创建DIRECTORY目录时需要指定相对路径,而不能指定其它绝对路径.来自博客园AskScuti 11g整库作为一个PDB迁移至阿里 ...

  4. 2 request的get和post方法

    requests的get方法 1 在百度里面查询关键字的方法,并获取带百度当前页面 import requests keywords = input('请输入>>>').strip( ...

  5. Java上传图片到Ftp,包含上传后文件大小为0的问题和Properties配置文件的读取

    准备工作:需要使用coomos-net jar包.下载地址 一. 上传图片到FTP,文件大小为0的问题,解决:将ftp模式修改为Passive模式就可以了. //将ftp模式修改为Passive模式 ...

  6. 阿里巴巴手册之-Arrays.asList()数组转集合的问题

    转载来源:https://blog.csdn.net/qq_36443497/article/details/79663663?utm_source=blogxgwz9 在使用工具类Arrays.as ...

  7. Ninject 2.x细说---1.基本使用

    Ninject 2.x细说---1.基本使用 https://blog.csdn.net/weixin_33809981/article/details/86091159   本来想使用一下Ninje ...

  8. Virtual Judge POJ 1328 Radar Installation

    贪心 #include<algorithm> #include<iostream> #include<cstdio> #include<cmath> u ...

  9. 2.6.1 XML配置:创建XML文件

    (1) 工程名右击---New--file  --  newfile窗口中:filename中输入testng.xml testng.xml 文件中打开后,切换到source 标签中.进行编辑. 内容 ...

  10. Django框架中auth模块的详解

    auth模块 auth模块是对登录认证方法的一种封装,本身就是一个对象,可以获取用户的详细信息,有了auth模块可以验证登录信息是否存在数据库中,还可以检验用户是否已经登录,校验密码等 auth方法 ...