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
C语言程序设计(二)的更多相关文章
- Python语言程序设计之二--用turtle库画围棋棋盘和正、余弦函数图形
这篇笔记依然是在做<Python语言程序设计>第5章循环的习题.其中有两类问题需要记录下来. 第一是如何画围棋棋盘.围棋棋盘共有19纵19横.其中,位于(0,0)的星位叫天元,其余8个星位 ...
- C语言程序设计入门学习五步曲(转发)
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- C语言程序设计第4堂作业
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决. 本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...
- 《VB语言程序设计(第3版)》总结
我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...
- 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...
- C语言程序设计第一作业
C语言程序设计第一作业 实验总结 (一) 1.题目:输入圆的半径,求圆周长和面积 2.流程图: 3.测试数据及运行结果: 4.实验分析: 问题1: 出现了错误 原因:是在赋值那写反了 解决方法:应该是 ...
- C语言程序设计第六次作业——循环结构(2)
C语言程序设计第六次作业--循环结构(2) 之前的博客园图片没处理好,对大家说一声抱歉.希望大家能够多多指出我的错误,我来认真修改 ^ - ^ !. (1)改错题 序列求和:输入一个正实数eps,计算 ...
- C语言程序设计第二次作业--顺序结构
C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...
- 2018年秋季学期《c语言程序设计》编程总结
<c语言程序设计>第四周编程总结 <c语言程序设计>第五周编程总结 <c语言程序设计>第六周编程总结 <c语言程序设计>第七周编程总结 <c语言程 ...
随机推荐
- python HTMLparser
1.概述 如果我们要编写一个搜索引擎,第一步是用爬虫把目标网站的页面抓下来, 第二步就是解析该HTML页面,看看里面的内容到底是新闻.图片还是视频. 假设第一步已经完成了,第二步应该如何解析HTML呢 ...
- leetcode 869. Reordered Power of 2
function reorderedPowerOf2(N) { var a1 = N.toString().split('') a1.sort((a, b) => a.localeCompare ...
- ET框架之SceneChangeComponent
初始化事件 using ETModel; namespace ETHotfix { [Event(EventIdType.InitSceneStart)] public class InitScene ...
- 一次列表页伪静态的实现;结合nginx rewrite
nginx伪静态: rewrite ^/(.*)-htm-(.*)$ /$1.php?$2; 将 list-html-t-3-p-4.html 转到list.php?t-3-p-4 t-3-p-4 用 ...
- layui下select禁止点击
layui下拉选择框select禁止点击_设置禁用_设置不可操作的实现方法 直接上代码: <form class="layui-form"> <!-- 提示:如果 ...
- IntelliJ IDEA 2017.3尚硅谷-----取消更新
- util之Map
1.定义 Map<String, Integer> map = new HashMap<String,Integer>(); 2.判断map中是否存在某个键的值: if(map ...
- java &&和&与逻辑运算区别
二者都表示与运算,同真为真,遇假即假 && 具有短路功能,前面为false后面不在预算直接表达式为false; &还可以用作位运算符,当&操作符两边的表达式不是 boo ...
- docker 初识1
学习网址 https://git.oschina.net/yangllsdev/docker-training https://docs.docker.com/engine/installation/ ...
- 大数据-hdfs技术
hadoop 理论基础:GFS----HDFS:MapReduce---MapReduce:BigTable----HBase 项目网址:http://hadoop.apache.org/ 下载路径: ...