欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言-简单的程序设计.ppt

    • 资源ID:80439202       资源大小:465KB        全文页数:51页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言-简单的程序设计.ppt

    高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础q存储相关的单位有哪些?q程序中如何使用内存空间进行数据存储的?qC语言中都能处理哪些数据?每种数据具有哪些特点?q程序中如何使用数据?(声明,初始化,赋值)复习1高职学院高职学院 计算机专业计算机专业程序设计基础程序设计基础第三章第三章简单程序设计高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础导入q要想借助C语言来辅助我们解决问题,至少需要解决两方面的问题,一是根据问题需求的描述,找出解决问题的方法或步骤,即设计算法。二是C语言实现算法,最终解决问题。q当我们使用C语言编写程序辅助解决问题时,一定是先在脑海里形成问题的处理逻辑,并把其步骤化后,才能够使用C语言编程实现。可见解决问题方法的设计和描述在程序设计中的重要作用,方法是整个过程的核心和灵魂,而好的描述方式则对后面的编程实现有着非常大的帮助,程序设计则是方法的实现工具。q这些具体的方法和步骤,其实就是解决一个问题的算法。根据算法,依据各种规则编写计算机执行的命令序列,就是编制程序,而书写时需要遵守的规则即为语言的语法。q本章将重点介绍算法的概念和描述方式,常用的输入输出语句,以及在此基础上的简单顺序C程序设计。3高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础本章目标q理解算法,程序,数据在程序设计中的作用q掌握算法的常用表示方式(流程图,伪代码)q认识三种基本程序设计结构q掌握常见的输入输出语句的使用方法q练习编写简单的顺序结构程序4高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法的概念 q算法算法(Algorithm)是指完成一个任务所需要的具体步骤具体步骤和方法。给定初始状态或输入数据,依据算法能够得出所要求或期望的终止状态或输出数据。或者说依据算法能够对一定规范的输入,在有限时间内获得所要求的输出。qDonald Knuth在他的著作The Art of Computer Programming里对算法下的定义:q1.输入:一个算法必须有零个或以上输入量。q2.输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。q3.明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。q4.有限性:算法必须在有限个步骤内完成任务。q5.有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。5高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法的概念q算法是计算机处理信息的本质,因为计算机程序本质上是通过一个算法来告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。q需要说明的是,不是只有计算问题才有算法。例如,加工一张写字台,其加工顺序是:桌腿 桌面 抽屉 组装,这就是加工这张写字台的算法。当然,如果是按“抽屉 桌面 桌腿 组装”这样的顺序加工,那就是加工这张写字台有另一种算法,这其中没有计算问题。q如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。q一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述。6高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法的分类q通常计算机算法分为两大类:数值运算算法和非数值运算算法。数值运算是指对问题求数值解,例如对微分方程求解、对函数的定积分求解等,都属于数值运算范围。非数值运算包括非常广泛的领域,例如资料检索、事务管理、数据处理等。q数值运算有确定的数学模型,一般都有比较成熟的算法。许多常用算法通常还会被编写成通用程序并汇编成各种程序库的形式,用户需要时可直接调用。例如数学程序库、数学软件包等。q非数值运算的种类繁多,要求不一,很难提供统一规范的算法,更多的非数值运算是需要用户设计的。q数据结构+算法=程序。算法是对程序控制结构的描述,是程序设计的灵魂,而数据结构是对程序中数据的描述。算法的处理对象必然是问题中所涉及到的相关数据,不能离开数据结构去抽象地分析程序的算法,也不能脱离算法去孤立地研究程序的数据结构,而只能从算法和数据结构的统一上去认识程序。7高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法示例q例:有黑和蓝两个墨水瓶,但却错把黑墨水装在了蓝墨水瓶子里,而蓝墨水错装在了黑墨水瓶子里,要求编写算法实现将其互换。q算法分析:这是一个非数值运算问题。因为两个瓶子的墨水不能直接交换,所以,解决这一问题的关键是需要引入第三个墨水瓶。设第三个墨水瓶为白色,其交换步骤如下:q 将黑瓶中的蓝墨水装入白瓶中;q 将蓝瓶中的黑墨水装入黑瓶中;q 将白瓶中的蓝墨水装入蓝瓶中;q 交换结束。q上述的四个步骤即为解决此问题的算法8高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法示例q例:计算长方形的面积(想法=算法?)q写程序前需要清楚“做什么”和“怎么做”。q“做什么”:主要从需求任务中获取,目标明确q“怎么做”:包括两方面内容,一是做哪些事情才能达到解决问题的目的,二是做事情的先后顺序。算法解决的是“怎么做”的问题1.接收用户输入的长方形长度和宽度两个值;2.判断长度和宽度的值是否大于零;3.如果大于零,将长度和宽度两个值相乘得到面积 否则显示输入错误;4.显示面积。算法9高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法的表示q算法的基本特征是确定性,要求用一种精确的无歧义的描述语言对算法进行描述。因此,一个好的算法表达工具无论对算法的设计、描述、实现、程序的维护都必不可少。q编程实现的细节是初学程序设计者的重点,随着学习的深入,算法才是整个程序设计的灵魂,也是程序员相互交流最多的问题。算法不同于程序,只是解决问题核心步骤的描述,并不包括程序设计的细节部分,需要采用合理的,大家都能看懂的方式表达出来。q三种常见的表示方式q1、自然语言表示q2、流程图(传统流程图和N-S流程图)q3、伪代码10高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础算法的表示q用自然语言表示算法。通俗易懂,容易产生歧义,和程序设计语言相差太远。一般不使用q用流程图表示算法。使用各种图框来表示解决问题的流程;美国ANSI提出的;直观形象,易于理解,建议初学者多使用。q用N-S流程图表示算法。新的流程图形式,但由于老程序员大都习惯传统流程图,故未得到推广。q用伪代码表示算法。q伪代码是使用介于自然语言和计算机语言之间的文字和符号来描述算法q无固定严格的语法要求,表达清楚既可。q随着学习的深入,程序员自然就会习惯用此方法描述算法11高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础传统流程图q所谓流程图,就是对给定算法的一种图形解法。流程图又称为框图,它用规定的一系列图形、流程线及文字说明来表示算法中的基本操作和控制流程,其优点是形象直观、简单易懂、便于修改和交流。q美国国家标准化协会ANSI规定了一些常用的符号,表1-1中分别列出了标准的流程图符号的名称、表示和功能。这些符号已被世界各国的广大程序设计工作者普遍接受和采用。12高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础传统流程图13高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础传统流程图14高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础常见算法举例 穷举法q穷举法也称为枚举法,它的基本思想是:首先根据问题的部分条件预估答案的范围,然后在此范围内对所有可能的情况进行逐一验证,直到全部情况均通过了验证为止。若某个情况使验证符合题目的全部条件,则该情况为本题的一个答案;若全部情况验证结果均不符合题目的全部条件,则说明该题无答案。q在实际应用问题中,许多问题需要用穷举法来解决。中国古代数学家张丘建在他的算经中曾提出著名的“百钱百鸡问题”,其题目如下:例题1-4:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?15高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础常见算法举例 穷举法q据题意可知,x、y、z的范围一定是0到100的正整数,那么,最简单的解题方法是:假设一组x、y、z的值,直接带入方程组求解,即在各个变量的取值范围内不断变化x、y、z的值,穷举x、y、z 全部可能的组合,若满足方程组则是一组解。这样即可得到问题的全部解。q可见,利用枚举法解题需要以下步骤:q(1)分析题目,确定答案的大致范围。q(2)确定列举方法。常用的列举方法有:顺序列举,排列列举和组合列举。q(3)作试验,直到遍历所有情况。q(4)试验完后可能找到与题目要求完全一致的一组或多组答案,也可能没找到答案,即证明题目无答案。q枚举法的特点是算法简单,容易理解,但运算量较大。对于可确定取值范围但又找不到其它更好的算法时,就可以用枚举法。通常枚举法用来解决有几种组合、是否存在、求解不定方程等类型的问题。枚举法设计算法多以循环控制结构实现。16高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础常见算法举例 穷举法q这是程序设计中常用的两种算法,都是利用某些公式的递推性。最常见的例子是计算级数,一般给出数列后项与前项的递推公式,要求计算数列通项。例如:q(1)f1(n)=2+f1(n-1),f1(1)=1 f1(n)=1,3,5,7,这是首项为1公差为2的等差数列(等差级数)。q(2)f2(n)=2 f2(n-1),f2(1)=1 f2(n)=1,2,4,8,这是首项为1公比为2的等比数列。q(3)f3(n)=n f3(n-1),f3(1)=1 f3(n)=1,2,6,24,这个数列的通项f3(n)=n!。q(4)f4(n)=f4(n-1)+f4(n-2),f4(1)=1,f4(2)=1 f4(n)=1,1,2,3,这就是有名的斐波那契数列。q以上数列的共同特点是,在数列的未知项与已知项之间存在着一定关系,借助于已知项和这一关系,就可逐项求出未知项。计算这些数列通常用递推和递归两种算法。17高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础常见算法举例 分治法q分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序)。q分治法在高级语言中主要的一个思想是递归,在每一层递归上都有三个步骤:q1.分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题。q2.解决:若子问题规模较小且易于解决时,则直接解。否则,递归地解决各子问题。q3.合并:将各子问题的解合并为原问题的解。18高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础常见算法举例 分治法q16枚硬币,其中有15枚重量相等,1枚是假币,较轻,你的任务是找出哪一枚是假币。为了完成任务,可以借助天平来进行比较。q方法1:拿一枚去与其他15枚比较,最多15次就能出结果。q方法2:分8组,每组2枚,每组比较一次,最多8次即可得出结果。q方法3:先分2组,每组8枚;对较轻的一组再分为2组,每组4枚;对较轻的一组再分为2组,每组2枚,对较轻的一组进行比较,得出结果。q分而治之的方法有时候也解释为将大的问题分解为若干个相对独立的小问题(小问题不一定与大问题同质),然后分别求出小问题的解,最后组合为整个问题的解。19高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础C语句概述q表达式语句、流程控制语句、复合语句和空语句q表达式语句:一个表达式及紧跟其后的分号构成,用于执行一些基本操作;如赋值语句,函数调用语句等。例如,qmax=a是赋值表达式,而max=a;就构成了赋值语句。qprintf(%d,a)是函数表达式,而printf(%d,a);是函数调用语句。qx+y是算术表达式,而x+y;是语句。尽管x+y;无实际意义,实际编程中并不采用它,但x+y;的确是合法语句。q流程控制语句:能够影响其他语句执行次序。分为选择结构语句和循环语句,将分别在第四章和第五章进行介绍。q例如:if(ab)max=a;else max=b;20高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础C语句概述q复合语句:用一对大括号括起一条或多条语句,称为复合语句。复合语句的一对大括号中无论有多少语句,复合语句只视为一条语句。例如,t=a;a=b;b=t;是复合语句,是一条语句,所以执行复合语句实际是执行该复合语句一对大括号中所有语句。注意,复合语句的“”后面不能出现分号,而“”前复合语句中最后一条语句的分号不能省略。如下面两种写法均是错误的复合语句:t=a;a=b;b=t;;t=a;a=b;b=t q空语句:空语句由一个分号组成,它表示什么操作也不做。从语法上讲,它的确是一条语句。在程序设计中,若某处从语法上需要一条语句,而实际上不需要执行任何操作时就可以使用它。例如,在设计循环结构时,有时用到空语句。21高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础赋值语句 q1、简单赋值语句q2、复合赋值语句q二元运算符可以简写,+=-=*=/=%=q3、赋值过程中的类型转换q1)实型数据赋给整型变量q2)整型数据赋给实型变量q3)double型数据赋给float型变量q4)float型数据赋给double型变量q5)字符型数据赋给整型变量q6)整型数据赋给字符型变量22高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础函数调用语句 q例如math.h头文件里包含了数学函数相关的类库:double pow(double x,double n)其功能为计算x的n次幂,返回结果为double型假设主程序中有double型变量x,并已经赋初值,double型变量n,并已赋初值,则如果想调用pow函数计算x的n次幂,则使用范例如下:#include void main()double x=2,n=3,result=0;result=pow(x,n);q功能描述 -函数功能的说明q返回值类型-函数调用后的结果类型,如果非空,通常在主程序中使用类型匹配的变量捕获函数调用后的返回值q函数名-按名调用q参数列表-需要处理的变量说明。函数对一定的数据进行处理,产生一定的结果输出。23高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础语句块 q为了说明一连串的语句是一个执行的整体,可将这些语句放在一对大括号里面,形成一个语句块。q每个主程序本身就是一个语句块。q一个语句块中的语句常常根据上下文的关系有不同程度的缩进,这些缩进本身对于程序的编译和执行没有影响,但恰当的缩进会使得程序结构更清晰易读。q关于分号:分号是简单语句的结束符。语句块的开始大括号和结束大括号后都不要加分号。24高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础数据的输入输出q(一).所谓输入输出是以计算机主机为主体而言的q输出:从计算机向输出设备(显示器,打印机)输出数据q输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.q(二).C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。示例如下:q字符输入函数:getchar字符输出函数:putcharq格式输入函数:scanf 格式输出函数:printfq在调用标准输入输出库函数时,文件开头应该有:#include 25高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础字符数据的输入输出q1、putchar()函数输出一个字符q函数原型为:void putchar(int c)q调用方式为:putchar(c);/将c变量以字符形式输出到终端显示设备,变量c可以是字符型变量或者整型变量q示例:int ch1=97;char ch2=a;putchar(ch1);putchar(n);putchar(ch2);26高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础字符数据的输入输出2、用getchar函数输入一个字符 q函数原型为:int getchar()q调用方式为:char ch=getchar();/作用是将终端键盘输入的第一个字符保存到char型变量ch中q示例:char ch1;ch1=getchar();printf(“ch1=%cn”,ch1);27高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础字符数据的输入输出例3.4 输入单个字符。#include#includevoid main()void main()char c;char c;c=getchar();c=getchar();putchar(c);putchar(c);putchar(n);putchar(n);运行程序:运行程序:从键盘输入字符从键盘输入字符aa按按EnterEnter键键屏幕上将显示输出的字符屏幕上将显示输出的字符aaaa a a28高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出1、用简单的printf函数输出数据qprintf函数(格式输出函数)的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。qprintf函数的一般调用格式为:printf(格式控制,输出表列)/一一对应q格式控制-是用双撇号括起来的字符串,它包括两种信息。q 格式说明。格式说明由“”和格式字符组成,如%d、%f、%c等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。q 普通字符。普通字符即原样输出的字符。例如上面printf函数中双撇号内的“a=”、逗号、空格和换行符。q输出表列-输出变量的列表,多个变量间用逗号分隔,这些变量将格式控制字符串中的格式控制符形成一一对应的关系,即第一个变量将会根据第一个格式控制字符指定的形式输出,输出时替换第一个格式控制符,以此类推,有多少格式控制符,后面就应该有多少个变量,同时要注意格式控制符和变量类型的匹配。29高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出qprintf函数的例子:qprintf(“a=%d,b=%fn,a,b);函数名函数名输输出出表表列列普通普通字符字符格式说明格式说明若a=3,b=4输出为 a=3,b=430高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出q基本的格式字符 有以下几种q(1)%d:以十进制整型数据形式输出变量的值,通常对应整型变量。q(2)%c:以字符形式输出变量的值,通常对应char型变量或小于255的整型变量。q(3)%f:以浮点型数据形式输出变量的值,默认保留小数点后6位,通常对应float型和double型变量q(4)%s:输出字符串(后面介绍)q(5)%e:以指数形式输出变量的值,通常对应浮点型数据。(少用)31高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出例3.5 字符数据的输出。#include#include void main()void main()char c=a;char c=a;int i=97;int i=97;printf(%c,%dn,c,c);printf(%c,%dn,c,c);printf(%c,%dn,i,i);printf(%c,%dn,i,i);运行结果:,32高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出例3.6 输出实数时的有效位数。#include#include void main()void main()float x,y;float x,y;x=111111.111;x=111111.111;y=222222.222;y=222222.222;printf(%fn,x+y);printf(%fn,x+y);运行结果:.结果中只有前七位是有效数字。由于x和y是单精度变量,所以x+y也只能保证7位的精度,后面几位是没有意义的。33高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输出例3.7 输出双精度数时的有效位数。#include#include void main()void main()double x,y;double x,y;x=11111111.11111111;x=11111111.11111111;y=22222222.22222222;y=22222222.22222222;printf(%fn,x+y);printf(%fn,x+y);运行结果:33333333.333333 x和y是双精度变量,能提供16位精度,但是由于用%f格式输出,默认只能输出6位小数,有两位被省掉了。34高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础重要复杂格式输出q%md,m指定了输出数据占的宽度,当位数小于m时右对齐,大于时按实际位数输出q%-md,同上,只是对齐方式变为左对齐q%m.nf,指定输出的实数共占列,其中有位小数。如果数值长度小于,则左端补空格。q%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。q%.nf,只要求小数点后保存n位,整数部分按实际输出q以上方式通常用于格式化输出一组数据对齐35高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础例3.14 输出实数时指定小数位数。#include#include void mainvoid main()()float f=123.456;float f=123.456;printf(“%fprintf(“%f,%10f%10f,%10.2f%10.2f,%.2f%.2f%,-10.2f10.2fn”n”,f f,f f,f f,f f,f);f);运行结果:123.456001,123.456001,123.46,123.46 123.46 复杂格式输出36高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础例3.15求3个圆的周长,输出结果时上下按小数点对齐,取两位小数。#include#include#define PI 3.1415926#define PI 3.1415926void main()void main()double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;s1=2.0*PI*r1;s1=2.0*PI*r1;s2=2.0*PI*r2;s2=2.0*PI*r2;s3=2.0*PI*r3;s3=2.0*PI*r3;printf(r1=%10.2fn r2=%10.2fn r3=%10.2fn,printf(r1=%10.2fn r2=%10.2fn r3=%10.2fn,r1,r2,r3);r1,r2,r3);运行结果:r1=1.53r2=21.83r3=123.7137高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输入q用简单的scanf函数输入数据qscanf函数作用:按照变量在内存的地址将变量值存进去。q一般格式:scanf(格式控制,地址表列)q注意:scanf格式控制字符串中的普通字符要再输入的时候原样输入,如写scanf(“a=%d”,&a);则在输入的时候要先写a=然后再给出要存储到变量a中的数据,即要通过键盘将数值5赋给a,则要输入“a=5”q对于连续的数值输入,如语句“scanf(“%d%d%f%fn”,&a,&b,&c,&d)”;在输入时可以采用空格或回车作为两个数据间的输入分隔符同同printf函数函数是由若干个地址组成的表列,可以是变量的地址,或是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。变量字符串的首地址。变量a对应的地址可以用对应的地址可以用&a来表示来表示38高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输入qscanf函数的例子:假设有如下变量声明int a;float b;scanf(“%d%f,&a,&b);函数名函数名地地址址表表列列格式说明格式说明一一对应一一对应39高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输入例3.8 用scanf函数输入数据。#include#include void main()void main()int a,b,c;int a,b,c;scanf(“%d%d%d”,&a,&b,&c);scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%dn”,a,b,c);printf(“%d,%d,%dn”,a,b,c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);printf(“%d,%d,%dn”,a,b,c);printf(“%d,%d,%dn”,a,b,c);运行情况:3 4 5 (输入a,b,c的值,)3,4,5 (输出a,b,c的值)a=3,b=4,c=53,4,540高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输入q修改程序,分析问题原因#include#include void main()void main()int a,b,c;int a,b,c;scanf(“%d%d%dn”,&a,&b,&c);scanf(“%d%d%dn”,&a,&b,&c);printf(“%d,%d,%dn”,a,b,c);printf(“%d,%d,%dn”,a,b,c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);/scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);/空格分隔空格分隔printf(“%d,%d,%dn”,a,b,c);printf(“%d,%d,%dn”,a,b,c);41高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础简单的格式输入q说明:q(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。q(2)scanf语句中得格式控制字符串内一般只有格式控制符,不添加其他普通字符,如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符,一般格式控制字符串内不要有n。q(3)在用“”格式输入字符时,空格字符和“转义字符”都作为有效字符输入,如果程序中有多个scanf语句进行字符输入,建议在每个scanf语句前加入语句“fflush(stdin);”,即先清空输入缓冲区,以避免前面输入产生的回车换行等字符产生影响。q(4)在输入数据时,空格,“回车”、“跳格”(Tab)键或遇非法输入,认为该数据结束。q(5)scanf中,输入float型数据,使用%f,而输入double型数据,需要使用%lf,而输出则统一用%f42高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础程序设计的三种基本结构q顺序结构。各操作步骤是顺序执行的,是最简单的一种结构。所有语句按照排列的先后顺序,依次执行。q选择结构。又称判断结构或者分支结构,根据是否满足条件而从两组操作中选择一种操作。q此结构中必包含一个判断条件,根据给定条件是否成立而选择执行哪组操作,并且只执行一组操作q教务系统学生,教师,教务人员,系部工作人员;q循环结构。又称重复结构,即在一定条件下反复执行某一部分的操作。q当给定条件p(如计数器n100;n初值为0)满足时执行一组操作,执行完后,条件p做相应的处理,再次判断条件p是否成立,如果成立则继续执行,否则退出。如往一个盒子里装球直到盒满q例如word里的统计字数操作,打印5000个*构成图案的操作43高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础程序设计的三种基本结构操作1操作2条件操作1操作2成立不成立条件操作成立不成立44高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础三种结构总结q一个良好的程序,无论多么复杂,都可以由这3种基本结构组成。qC语言提供了实现三种基本结构的语句,如用if语句可以实现选择结构,用for和while可以实现循环结构qC语言属于结构化语言,面向过程的语言45高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构q顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。q例如;a=3,b=5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c=a;a=b;b=c;执行结果是a=5,b=c=3如果改变其顺序,写成:a=b;c=a;b=c;则执行结果就变成a=b=c=5,不能达到预期的目的,初学者最容易犯这种错误。q顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三部曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s=3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。46高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构程序设计举例例3.13 输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)/2开始输入三边长计算s计算面积结束47高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构程序设计举例#include#include#include#includevoid main()void main()float a,b,c,s,area;float a,b,c,s,area;scanf(“%f,%f,%f,&a,&b,&c);scanf(“%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“a=%7.2f,b=%7.2f,c=%7.2f,printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s);s=%7.2fn”,a,b,c,s);printf(“area=%7.2fn”,area);printf(“area=%7.2fn”,area);数学函数库因为要用到其中的sqrt函数运行情况:运行情况:3.43.4,4.5 4.5,5.6 5.6a=3.400000,b=4.500000,c=5.600000a=3.400000,b=4.500000,c=5.600000area=7.649173 area=7.649173 48高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构程序设计举例例 从键盘输入一个大写字母,要求改用小写字母输出。#include#include void main()void main()char c1,c2;char c1,c2;c1=getchar();c1=getchar();printf(%c,%dn,c1,c1);printf(%c,%dn,c1,c1);c2=c1+32;c2=c1+32;printf(%c,%dn,c2,c2);printf(%c,%dn,c2,c2);运行情况:,49高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构程序设计举例例3.15 求求x2x2方程的根。方程的根。a a,b b,c c由键盘输入,设由键盘输入,设 。众所周知,一元二次方程式的根为众所周知,一元二次方程式的根为x1=x2=x1=x2=可以将上面的分式分为两项:可以将上面的分式分为两项:p=p=,q=x1=p+q q=x1=p+q,x2=p-q x2=p-q50高高职职学学院院 计计算算机机专专业业程序设计基础程序设计基础顺序结构程序设计举例#include#include#include#include void main()void main()float a,b,c,disc,x1,x2,p,q;float a,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,&a,&b,&c);scanf(a=%f,b=%f,c=%f,&a,&b,&c);disc=b*b-4*a*c;disc=b*b-4*a*c;p=-b/(2*a);p=-b/(2*a);q=sqrt(disc)/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;x1=p+q;x2=p-q;printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);运行情况:,51

    注意事项

    本文(c语言-简单的程序设计.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开