收藏 分销(赏)

chapter程序的灵魂算法最简单的C程序设计顺序程序设计.pptx

上传人:人****来 文档编号:9460233 上传时间:2025-03-27 格式:PPTX 页数:47 大小:531.04KB
下载 相关 举报
chapter程序的灵魂算法最简单的C程序设计顺序程序设计.pptx_第1页
第1页 / 共47页
chapter程序的灵魂算法最简单的C程序设计顺序程序设计.pptx_第2页
第2页 / 共47页
点击查看更多>>
资源描述
单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,C,语言,程序,设计,第,三,章,四川理工学院,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,C,语言,程序,设计,第,二,章,四川理工学院,第三章 算法和最简单的,C,程序设计,重点,掌握了解算法的基本概念与特征,掌握熟悉结构化程序设计的基本概念,掌握算法表示方法,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,C,语言,程序,设计,第,二,章,四川理工学院,数据类型、运算符,与表达式,内容,2.1 C,的数据类型,2.2,常量与变量,2.3,整型数据,2.4,实型数据,2.5,字符型数据,2.6,变量赋初值,2.7,各类数值型数据间的混合运算,2.8,算术运算符与算术表达式,2.9,赋值运算符和赋值表达式,2.10,逗号运算符和逗号表达式,数据类型、运算符,与表达式,重点,理解常量变量含义,理解整型、实型、字符型数据的表示和存储;,理解表达式的含义和组成方式。,3.1,算法,一、算法的概念,Nikiklaus Wirth,公式,程序,=,数据结构,+,算法,数据结构:,对数据的描述,在程序中指定数据的,类型和数据的组成形式。,算法:,对操作的描述,即解决问题的方法和步骤。,程序,=,数据结构,+,算法,+,程序设计方法,+,语言工具,+,环境,3.1,算法,二、算法的特性,1.,有穷性,一个算法包含的操作步骤应当是有限的。,2,.,确定性,一个,算法的含义应当是唯一的,算法中的每一个,步骤应当是确定的,不应产生,“,歧义性,”,。,3,.,有零个或多个输入,4.,有一个或多个输出,5.,有效性,算法中的每一步都应当能有效地执行,,并得到正确的结果。,三、简单算法举例,1.,求,12 3 4 5 (,即,5!),算法一,:,步骤,1,:12,得,2;,步骤,2,:23,得,6;,步骤,3,:64,得,24;,步骤,4,:245,得,120;,3.1,算法,算法二,:,设,p,为被乘数,i,为乘数,采用循环算法,。,S1:,使,p=1;,S2:,使,i=2;,S3:,使,p i p,S4:,使,i+1 i,S5:,如果,i,不大于,5,则返回重新,执行,S3,,,S4,,,S5;,否则,算法结束。,3.1,算法,三、简单算法举例,1.,求,12 3 4 5 (,即,5!),2.,对一个大于或等于,3,的正整数,判断它是不是,一个素数。,算法一:,将,n,作为被除数,将,2,到,(,n,1,),各个整数轮流作为除数,如都不能被,整除,则,n,为素数。,3.1,算法,三、简单算法举例,算法二:,将,n,作为被除数,将,2,到,n/2,(,或者是,2,到,n,1/2,),各个整数轮流作为除数,如都不能被整除,则,n,为,素数。,S1:,输入,n,的值,S2:i=2(i,作为除数,),S3:,n,被,i,除,得余数,r,S4:,如,r=0,,则输出“不是素数”,反之执行,S5,S5:i+1 i,S6:,如果,i n 1,返回,S3;,否则输出“是素数”结束。,3.1,算法,三、简单算法举例,自然语言,传统流程图,结构化流程图,伪代码,PDA,图。,3.1,算法,四、算法的表示方法,1.,传统流程图,特点,:,用一些规定的图框表示各种操作。直观形象,易于理解。,常用的,ANSI,规定图形符号如图:,起始或结束框,输入输出框,判断框,处理框,流程线,连接点,注释框,3.1,算法,四、算法的表示方法,用,传统流程图,来表示求,5,!。,开始,i 5,1t,2i,tit,i+1i,结束,N,2.,程序的三种基本结构,一个程序只能由三种基本结构,(,或由它们派生出来的结构,),组成,这三种结构为:,(1),顺序结构,(2),选择结构,(3),循环结构,A,B,A,B,P,P1,A,P2,A,成立,成立,不成立,顺序结构 选择结构 循环结构,3.,用,N S,流程图表示算法,N S,结构化流程图是根据美国学者,I.Nassi,和,B.Shneiderman,1973,年提出的算法来描述的,,,属于,无流线,的流程图,简称,N S,图。,A,B,C,真,P,假,A,B,当,P,为真,A,A,直到,P,为假,顺序结构 选择结构 循环结构,真,P1,假,当,P2,为真,真,P3,假,A,B,C,一般情况,N S,图的特点:,比自然语言描述更直观、形象、易于理解。,比传统流程图紧奏易画。,图中的上下顺序就是执行时的顺序,符合,“,自顶向下,逐步细化,”,的结构化程序设计要求。,求,5,!,的,N S,流程图,1,t,2,i,ti,t,i+1,i,直到,i 5,输出,判断,素数,的,N S,流程图,输入,n,0,w,2,i,n/i,的余数,r,r=0,是,否,1,w,i+1,i,直到,i n,1/2,或,w 0,w=0,是,否,“,是素数”,“,不是素数”,表达式语句:表达式,;,3.2 C,语句概述,C,语句包括,:,控制语句,(9),种,if()else;,for();,while();,do while,;,continue ;,break;,switch;,goto;,return,控制语句,1,函数调用,语句,例如:,y=cos(0.5);,y=sin(cos(0.5);,printf(“Hello”);,函数调用语句,2,复合语句,格式,语句,1;,语句,n;,复合语句,5,空语句:,;,3.3,赋值语句,赋值语句由赋值表达式加上分号构成。,如:,a=b,;,C,语言中将赋值表达式和赋值语句分开来,,其目的是增加表达式的种类和使用范围。,如:,(1)if(,x,0),(2)if(,a=b,)0),t=a;,3.4,字符数据的输入输出,C,程序的输入和输出完全依靠调用标准输入和输出函数来完成。,常用的,4,个,I/O,函数为,:,scanf()getchar(),printf()putchar(),输出单个字符,输出转义字符,3.4,字符数据的输入输出,一、,putchar,函数,(,字符输出函数,),作用,:,向终端,(,即系统隐含指定的输出设备,,如,显示器,打印机,),输出一个字符。,格式,:,putchar(ch),;,其中,:,ch,代表一个,字符型,或,整型变量,,,也可以是一个,字符常量,或,整型常量,。,例 输出转义字符,#,include ,main(),putchar(101,);,putchar(,);,putchar(n);,输出结果,:,A,输出单个字符,#,include ,/*,包含,I/O,库有关变量定义和宏定义*,/,main(),char a,b,c;,a=B;,b=O;,c=Y ;,putchar(,a,);,putchar(,b,);,putchar(,c,);,输出结果,:,BOY,例如,输出单个转义字符,#,include ,main(),putchar(101,);,putchar(,);,putchar(n);,输出结果,:,A,重点,例 输出单个字符,#,include ,/*,包含,I/O,库有关变量定义和宏定义*,/,main(),char a,b,c;,a=B;,b=O;,c=Y ;,putchar(,a,);,putchar(,b,);,putchar(,c,);,输出结果,:,BOY,输出单个字符,输出转义字符,3.4,字符数据的输入输出,一、,putchar,函数,(,字符输出函数,),作用,:,向终端,(,即系统隐含指定的输出设备,,如,显示器,打印机,),输出一个字符。,格式,:,putchar(ch),;,其中,:,ch,代表一个,字符型,或,整型变量,,,也可以是一个,字符常量,或,整型常量,。,例 输出转义字符,#,include ,main(),putchar(101,);,putchar(,);,putchar(n);,输出结果,:,A,输出单个字符,#,include ,/*,包含,I/O,库有关变量定义和宏定义*,/,main(),char a,b,c;,a=B;,b=O;,c=Y ;,putchar(,a,);,putchar(,b,);,putchar(,c,);,输出结果,:,BOY,重点,输出单个转义字符,#,include ,main(),putchar(101,);,putchar(,);,putchar(n);,输出结果,:,A,重点,例 输出单个字符,#,include ,/*,包含,I/O,库有关变量定义和宏定义*,/,main(),char a,b,c;,a=B;,b=O;,c=Y ;,putchar(,a,);,putchar(,b,);,putchar(,c,);,输出结果,:,BOY,3.4,字符数据的输入输出,二、,getchar,函数,(,字符输入函数,),作用,:,从终端,(,即系统隐含指定的输入设备,(,如键盘,),,输入,一个字符,。,说明,:,1.,执行时,输入字符并按回车键后,才将其输入到缓冲区,只读取一个字符给变量。,getchar,函数接收的一个字符,可以赋给,char,型或,int,型变量,也可不赋给任何变量。,3.,使用,putchar,和,getchar,函数需用预编译命令,#include,将“,stdio.h,”,包括进去。,例,3.2,:从键盘输入一个字符再输出。,从键盘输入一个字符再输出。,#include “stdio.h”,main(),char c;,c=getchar();,putchar(c);,若输入,:,a,则输出,:,a,实例,示例,2,示例,1,格式控制,输出表列,3.5,格式输入与输出,一、,printf,函数,(,格式化输出函数,),1.,格式,:printf(,);,作用,:,向系统终端(或隐含的输出设备,),输出,若干,个指定类型,的数据。,2.,格式字符,(,共 9 种,),作用:控制,不同类型数据的不同格式输出。,(1),d,格式符:用于输出十进制整数,%d,:,按整型数的实际长度输出。,%md,:,m,为指定的输出数据宽度,若数据位,数,m,则,左,补空格,反之则将数据全部输出。,%md,:左,靠齐,,右,补空格。,%ld,:,输出长整型数据。,格式控制,:,由双引号括起来的字符串表示,包括,格式说明,和,普通字符,两部分。,输出表列,:,需要输出的数据,可以是,:,常量,变量,表达式,函数,字符串常量,。,使用示例,:,main(),int a=3,b=2;,printf(“%d,%d,”,a,b);,printf(“,sum is,%d”,a+b);,printf(“%d”,123);,printf(“%c”,getchar(),);,main(),int a=123,b=12345;,long c=135790;,printf(“%4d,%4dn”,a,b);,printf(“%4dn”,a);,printf(“%ldn”,c);,printf(“%8ld”,c);,输出,:,123,12345,123,135790,135790,格式控制,输出表列,printf,函数,使用示例,:,main(),int a=3,b=2;,printf(“%d,%d,”,a,b);,printf(“,sum is,%d”,a+b);,printf(“%d”,123);,printf(“%c”,getchar(),);,举例,main(),int a=123,b=12345;,long c=135790;,printf(“%4d,%4dn”,a,b);,printf(“%4dn”,a);,printf(“%ldn”,c);,printf(“%8ld”,c);,输出,:,123,12345,123,135790,135790,格式控制,:,由双引号括起来的字符串表示,包括,格式说明,和,普通字符,两部分。,重点,输出表列,:,需要输出的数据,可以是,:,常量,变量,表达式,函数,字符串常量,。,重点,3.5,格式输入与输出,一、,printf,函数,(,格式化输出函数,),1.,格式,:printf(,);,作用,:,向系统终端(或隐含的输出设备,),输出,若干,个任意类型,的数据。,2.,格式字符,(,共 9 种,),作用:控制,不同类型数据的不同格式输出。,(1),d,格式符:用于输出十进制整数,%d,:,按整型数的实际长度输出。,%md,:,m,为指定的输出数据宽度,若数据位,数,m,时,全部输出。反之则,右,靠齐,,左,补,空格或左靠齐,右补空格。,%m.ns,:,规定输出字符串所占列宽,只取,字符串中左端,n,个字符。输出,右,靠齐,,左,补空,格或左靠齐,右补空格。当,n m,时,则,m,自动取,n,的值以保证,n,个字符正输出。,%mc,:指定输出数据宽度,,右,靠齐,,左,补空格,%,mc,:,左靠齐,,,右补空格,。,例,3.3,void main(),char c=a;,int i=97;,printf(“%c”,a);,printf(“%c,%dn”,c,c);,printf(“%c,%dn”,i,i);,如,:,char c=a;,printf(“,%3c,”,c);,输出,:a,又如,:printf(“,%3c%3c,”,a ,b);,输出,:a b,例,3.4,void main(),printf(“%3s,%7.2s,%.,4s,%,5.3s n”,“CHINA”“CHINA”,“CHINA”,“CHINA”);,输出,:,CHINA,CH,CHIN,CHI,例,3.3,c,格式符,用于输出一个字符,例,3.3,void main(),char c=a;,int i=97;,printf(“%c”,a);,printf(“%c,%dn”,c,c);,printf(“%c,%dn”,i,i);,重点,c,格式符,域宽控制,main(),char c=a;,printf(“,%3cn,”,c);,printf(“,%3c%3c,”,a,b);,输出,:,a,a b,重点,s,格式符,输出一个字符串,void main(),printf(“%3s,%7.2s,%.,4s,%,5.3s n”,“CHINA”“CHINA”,“CHINA”,“CHINA”);,输出,:,CHINA,CH,CHIN,CHI,示例,(2),c,格式符:,用于输出一个字符,%c,控制字符常量或字符变量的输出。,%mc,:指定输出数据宽度,,右,靠齐,,左,补空格,%,mc,:,左靠齐,,,右补空格,。,例,3.3,void main(),char c=a;,int i=97;,printf(“%c”,a);,printf(“%c,%dn”,c,c);,printf(“%c,%dn”,i,i);,如,:,char c=a;,printf(“,%3c,”,c);,输出,:a,又如,:printf(“,%3c%3c,”,a ,b);,输出,:a b,(3),s,格式符,:输出一个字符串,%s,%ms,:,规定输出字符串占的列宽。字符串,长度,m,时,全部输出。反之则,右,靠齐,,左,补,空格或左靠齐,右补空格。,%m.ns,:,规定输出字符串所占列宽,只取,字符串中左端,n,个字符。输出,右,靠齐,,左,补空,格或左靠齐,右补空格。当,n m,时,则,m,自动取,n,的值以保证,n,个字符正输出。,例,3.4,void main(),printf(“%3s,%7.2s,%.,4s,%,5.3s n”,“CHINA”“CHINA”,“CHINA”,“CHINA”);,输出,:,CHINA,CH,CHIN,CHI,例,3.3,c,格式符,用于输出一个字符,例,3.3,void main(),char c=a;,int i=97;,printf(“%c”,a);,printf(“%c,%dn”,c,c);,printf(“%c,%dn”,i,i);,重点,域宽控制,c,格式符,域宽控制,main(),char c=a;,printf(“,%3cn,”,c);,printf(“,%3c%3c,”,a,b);,输出,:,a,a b,重点,s,格式符,s,格式符,输出一个字符串,void main(),printf(“%3s,%7.2s,%.,4s,%,5.3s n”,“CHINA”“CHINA”,“CHINA”,“CHINA”);,输出,:,CHINA,CH,CHIN,CHI,示例,域宽控制,(4),f,格式符,:,用于输出实数,(,包括单,双精度,),%f,系统自动指定宽度,整数部分全部输出,并输出,6,位小数。但并非全部数字都是有效,数字。一般 单精度实数有效位为,7,位。,双精度实数为,16,位。,%mf,%m.nf,规定输出实数占的列宽,且有,n,位小数如果数值长度,m,,则输出右靠齐,,左补空格 或,左,靠齐,,右,补空格。,例,3.5,void main(),float x,y;,x=111111.111;,y=222222.22;,printf(“,%f,”,x+y);,输出,:,333333,.328125,例,3.7,main(),float f=123.456;,printf(“%f,%10fn”,f,f);,printf(“%10.2f%.2f%10.2f”,f,f,f);,输出,:,123.55994123.455994,123.46123.46123.46,例,3.7,例,3.5 111111.111+222222.222=?,浮点数丢失 精度,浮点数丢失 精度,void main(),float x,y;,x=111111.111;,y=222222.22;,printf(“,%f,”,x+y);,输出,:,333333,.328125,重点,实型数据域宽控制,main(),float f=123.456;,printf(“%f%10fn”,f,f);,printf(“%10.2f%.2fn”,f,f);,printf(%10.2f”,f);,输出,:,123.55994123.455994,123.46123.46,123.46,重点,(4),f,格式符,:,用于输出实数,(,包括单,双精度,),%f,系统自动指定宽度,整数部分全部输出,并输出,6,位小数。但并非全部数字都是有效,数字。一般 单精度实数有效位为,7,位。,双精度实数为,16,位。,例,3.5,void main(),float x,y;,x=111111.111;,y=222222.22;,printf(“,%f,”,x+y);,输出,:,333333,.328125,例,3.7,main(),float f=123.456;,printf(“%f,%10fn”,f,f);,printf(“%10.2f%.2f%10.2f”,f,f,f);,输出,:,123.55994123.455994,123.46123.46123.46,例,3.7,%mf,%m.nf,规定输出实数占的列宽,且有,n,位小数如果数值长度,m,,则输出右靠齐,,左补空格 或,左,靠齐,,右,补空格。,例,3.5 111111.111+222222.222=?,浮点数丢失 精度,浮点数丢失 精度,void main(),float x,y;,x=111111.111;,y=222222.22;,printf(“,%f,”,x+y);,输出,:,333333,.328125,重点,域宽控制,实型数据域宽控制,main(),float f=123.456;,printf(“%f%10fn”,f,f);,printf(“%10.2f%.2fn”,f,f);,printf(%10.2f”,f);,输出,:,123.55994123.455994,123.46123.46,123.46,重点,浮点数丢失 精度,域宽控制,例程执行及分析,例,3.2,(5),u,格式,符,:,用于按十进制形式输出,unsigned,型数据。,说明,:,有符号,int,型与,unsigned,型数据可以相互赋值,故,int,型可以用,%u,格式输出;,unsigned,型也可以用,%d,格式输出。,unsigned,型还可以用,%o,和,%x,格式输出,。,例,3.2,void main(),unsigned int,a,=65535;,int,b,=2;,printf(“a=%,d,%,o,%,x,%,u,n”,a,a,a,a);,printf(“b=%,d,%,o,%,x,%,u,n”,b,b,b,b);,输出结果,:,a=1,177777,ffff,65535,b=2,177776,fffe,65534,11111111,11111110,11111111,11111111,a,=,65535,b,=,2,u,格式,符,用于按十进制形式,输出,unsigned,型数据,例,3.2,void main(),unsigned int,a,=65535;,int,b,=2;,printf(“a=%,d,%,o,%,x,%,u,n”,a,a,a,a);,printf(“b=%,d,%,o,%,x,%,u,n”,b,b,b,b);,重点,例,3.2,输出结果,:,a=1,177777,ffff,65535,b=2,177776,fffe,65534,a,=,65535,b,=,2,重点,11111111,11111110,11111111,11111111,例程执行及分析,例,3.2,(5),u,格式,符,:,用于按十进制形式输出,unsigned,型数据。,说明,:,有符号,int,型与,unsigned,型数据可以相互赋值,故,int,型可以用,%u,格式输出;,unsigned,型也可以用,%d,格式输出。,unsigned,型还可以用,%o,和,%x,格式输出,。,例,3.2,void main(),unsigned int,a,=65535;,int,b,=2;,printf(“a=%,d,%,o,%,x,%,u,n”,a,a,a,a);,printf(“b=%,d,%,o,%,x,%,u,n”,b,b,b,b);,输出结果,:,a=1,177777,ffff,65535,b=2,177776,fffe,65534,11111111,11111110,11111111,11111111,a,=,65535,b,=,2,u,格式,符,用于按十进制形式,输出,unsigned,型数据,例,3.2,void main(),unsigned int,a,=65535;,int,b,=2;,printf(“a=%,d,%,o,%,x,%,u,n”,a,a,a,a);,printf(“b=%,d,%,o,%,x,%,u,n”,b,b,b,b);,重点,例,3.2,输出结果,:,a=1,177777,ffff,65535,b=2,177776,fffe,65534,a,=,65535,b,=,2,重点,11111111,11111110,11111111,11111111,(6),e,格式,符,:,用于按指数形式输出实数,%e,由系统自动指定给出,6,位小数,指数部分占,5,位,(,如,e,+,002,),。,例如:,float f=123.456 ;,printf(“%e,%10e%10.2e%.,2,e,10.2e”,f,f,f,f,f);,输出:,1.234560e+0021.234560e+002,1.23e+0021.23e+0021.23e+002,%m.ne,规定输出实数占的列宽,且有,n,位小数。,如果数值长度,m,,则输出,右,靠齐,,左,补空格或,左,靠齐,右补空格。,例如,e,格式,符,:,用于按指数形式,输出实数,main(),float f=123.456;,printf(“%e%10en”,f,f);,printf(“%10.2e%.,2,e%10.2e”,f,f,f);,输出:,1.234560e+0021.234560e+002,1.23e+0021.23e+0021.23e+002,重点,(6),e,格式,符,:,用于按指数形式输出实数,%e,由系统自动指定给出,6,位小数,指数部分占,5,位,(,如,e,+,002,),。,例如:,float f=123.456 ;,printf(“%e,%10e%10.2e%.,2,e,10.2e”,f,f,f,f,f);,输出:,1.234560e+0021.234560e+002,1.23e+0021.23e+0021.23e+002,%m.ne,规定输出实数占的列宽,且有,n,位小数。,如果数值长度,m,,则输出,右,靠齐,,左,补空格或,左,靠齐,右补空格。,例如,例如,e,格式,符,:,用于按指数形式,输出实数,main(),float f=123.456;,printf(“%e%10en”,f,f);,printf(“%10.2e%.,2,e%10.2e”,f,f,f);,输出:,1.234560e+0021.234560e+002,1.23e+0021.23e+0021.23e+002,重点,1.输出项与格式符必须按照从左至右的顺序在,类型上一一匹配。,2.格式字符要,小写,。如:%,f,%F,3.,如果格式字符的个数,少于,输出项数时,多余的输出项不予输出。反之若格式字符的个数大于输出项数时,各系统的处理不同。,printf,函数使用的注意事项:,4.,注意常规,d e f o x u c s e g,等字符在“,%,”,后面与一般情形的区别。,如,:,print(“,c,=%c,f=%f,s=%s”,c,f,s);,5.,可以输出“,%,”,号,例如,:,printf(“%f%,%,”,1.0/3);,输出,:0.333333,%,了解,例如:,Turbo C,中对于缺少项输出不定值,而,VAX C,则输出,0,值。,例如:,printf(“%d,%f,%un”,x,y,z,t,);,printf(“%d,%f,%u,%e,n”,x,y,z);,格式字符的个数,少于,输出项数,例如:,Turbo C,中对于缺少项输出不定值,而,VAX C,则输出,0,值。,例如:,printf(“%d,%f,%un”,x,y,z,t,);,printf(“%d,%f,%u,%e,n”,x,y,z);,请自行编程验证,!,了解,1.输出项与格式符必须按照从左至右的顺序在,类型上一一匹配。,2.格式字符要,小写,。如:%,f,%F,3.,如果格式字符的个数,少于,输出项数时,多余的输出项不予输出。反之若格式字符的个数大于输出项数时,各系统的处理不同。,printf,函数使用的注意事项:,4.,注意常规,d e f o x u c s e g,等字符在“,%,”,后面与一般情形的区别。,如,:,print(“,c,=%c,f=%f,s=%s”,c,f,s);,5.,可以输出“,%,”,号,例如,:,printf(“%f%,%,”,1.0/3);,输出,:0.333333,%,了解,了解,例如:,Turbo C,中对于缺少项输出不定值,而,VAX C,则输出,0,值。,例如:,printf(“%d,%f,%un”,x,y,z,t,);,printf(“%d,%f,%u,%e,n”,x,y,z);,格式字符的个数,少于,输出项数,例如:,Turbo C,中对于缺少项输出不定值,而,VAX C,则输出,0,值。,例如:,printf(“%d,%f,%un”,x,y,z,t,);,printf(“%d,%f,%u,%e,n”,x,y,z);,请自行编程验证,!,重点,二、,scanf,函数,(,格式化输入函数,),作用,:,用于输入任何类型的多个数据,1.,格式,:,scanf,(,格式控制,地址表列,),;,格式控制,同,printf,函数的格式控制含义一样。,地址表列由多个输入项的,地址,构成。可以是,变,量,的地址或,字符串,的首地址或,数组元素,的地址等。,例,3.9,void,main(),int a,b,c;,scanf,(“%d%d%d”,&,a,&,b,&,c);/*/,printf(“%d,%d,%d n”,a,b,c);,输入,:,输出,:3,4,5,345,关于,&,注意,:,2,.,在输入数据时,两个数据之间可以用一个或,多个 空格,也可用回车键或跳格键,(,Tab,),。,例如,:345 345 3(,Tab,键,)45,均合法。而,3,4,5,不合法。,如果将,scanf(“%d%d%d”,改成,:,scanf(“%d,%d,%d”,&a,&b,&c),;,则输入数据时只有,3,4,5,合法。,注意,:,3,.,在输入数据时,并非输入完一个数据就被读入并,送给一个变量,而是在键入一行字符并按回车键,后才将该行字符输入缓冲区,然后,scanf,函数从缓,冲区按规定格式要求从缓冲区读取数据。,scanf,函数,注意,(1),“&”,是地址运算符,&a,表示,a,在内存中的地址。,初学者常犯的典型错误:,void,main(),int a,b,c;,scanf(“%d%d%d”,a,b,c,);,printf(“%d,%d,%d n”,a,b,c);,重点,scanf,函数注意,(2),在输入数据时,两个数据之间可以用一个或多个 空格,也可用回车键或跳格键 例如,:,scanf(“,%d%d%d,”,对应的合法输入,3,4,5,3,4,5,3,(Tab,键,),4,5,对应的,典型输入错误,:,3,4,5,若语句改为,:,scanf(“,%d,%d,%d,”,则输入数据时只有,3,4,5,合法。,重点,scanf,函数注意,(3),回车确认输入,在输入数据时,并非输入完一个数据就被读入并送给一个变量,而是在键入一行字符并按回车键后才将该行字符输入缓冲区,然后,scanf,函数从缓冲区按规定格式要求从缓冲区读取数据。,重点,注意,(1),“&”,是地址运算符,&a,表示,a,在内存中的地址。,初学者常犯的典型错误:,void,main(),int a,b,c;,scanf(“%d%d%d”,a,b,c,);,printf(“%d,%d,%d n”,a,b,c);,二、,scanf,函数,(,格式化输入函数,),作用,:,用于输入任何类型的多个数据,1.,格式,:,scanf,(,格式控制,地址表列,),;,格式控制,同,printf,函数的格式控制含义一样。,地址表列由多个输入项的,地址,构成。可以是,变,量,的地址或,字符串,的首地址或,数组元素,的地址等。,例,3.9,void,main(),int a,b,c;,scanf,(“%d%d%d”,&,a,&,b,&,c);/*/,printf(“%d,%d,%d n”,a,b,c);,输入,:,输出,:3,4,5,注意,:,2,.,在输入数据时,两个数据之间可以用一个或,多个 空格,也可用回车键或跳格键,(,Tab,),。,例如,:345 345 3(,Tab,键,)45,均合法。而,3,4,5,不合法。,如果将,scanf(“%d%d%d”,改成,:,scanf(“%d,%d,%d”,&a,&b,&c),;,则输入数据时只有,3,4,5,合法。,注意,:,3,.,在输入数据时,并非输入完一个数据就被读入并,送给一个变量,而是在键入一行字符并按回车键,后才将该行字符输入缓冲区,然后,scanf,函数从缓,冲区按规定格式要求从缓冲区读取数据。,关于,&,scanf,函数,注意,(1),“&”,是地址运算符,&a,表示,a,在内存中的地址。,初学者常犯的典型错误:,void,main(),int a,b,c;,scanf(“%d%d%d”,a,b,c,);,printf(“%d,%d,%d n”,a,b,c);,重点,345,scanf,函数注意,(2),在输入数据时,两个数据之间可以用一个或多个 空格,也可用回车键或跳格键 例如,:,scanf(“,%d%d%d,”,对应的合法输入,3,4,5,3,4,5,3,(Tab,键,),4,5,对应的典型输入错误:,3,4,5,若语句改为,:,scanf(“,%d,%d,%d,”,则输入数据时只有,3,4,5,合法。,重点,scanf,函数注意,(3),回车确认输入,在输入数据时,并非输入完一个数据就被读入并送给一个变量,而是在键入一行字符并按回车键后才将该行字符输入缓冲区,然后,scanf,函数从缓冲区按规定格式要求从缓冲区读取数据。,重点,345,关于,&,注意,(1),“&”,是地址运算符,&a,表示,a,在内存中的地址。,初学者常犯的典型错误:,void,main(),int a,b,c;,scanf(“%d%d%d”,a,b,c,);,printf(“%d,%d,%d n”,a,b,c);,程序找错,抑制字符,指定输入数据宽度,关于,%u,的说明,2.,格式说明,(1),标准,C,中,scanf,函数不使用,%u,格式,,Turbo C,中可用。,(2),可以指定整型变量输入数据宽度。,(3),可以使用,抑制字符,%*,(4),不能规定输入数据的精度,(,与,printf,函数不同,),(4),不能规定输入数据的精度,(,与,printf,函数不同,),如,:,scanf(“%,7.2f,”,(,不合法),即不能输入 1234567 来使,a=12345.67,。,2.,格式说明,(1),标准,C,中,scanf,函数不使用,%u,格式。,对,unsigned,型数据以,%d,或,%o,%x,格式输入。,而,Turbo C,中可以使用,%u,格式来输入无符号数。,(2),可以指定输入数据宽度。如:,scanf(“%3d%3d”,输入,:123456,则,:,a,是,123,b,是,456,同样,:scanf(“%,3,c”,输入,:abc,则:,ch,得到字符,a,2.,格式说明,(3),可以使用,抑制字符,%*,如,:,scanf(“%2d%*3d%2d”,输入,:12,345,67,则,a,是,12,b,是,67,scanf,函数,格式说明,标准,C,中,scanf,函数不使用,%u,格式。对,unsigned,型数据以,%d,或,%o,%x,格式输入。,而,Turbo C,中可以使用,%u,格式来输入无符号数。,极宽框,1,内容。,1,scanf,函数,指定输入数据宽度,main(),int a,b;,scanf(“%3d%3d”,printf(“%d,%d”,a,b);,输入,:123456,则,:,a,是,123,b,是,456,若有,:scanf(“%,3,c”,输入,:abc,则,ch,得到字符,a,2,scanf,函数,使用,抑制字符,%*,如,:,scanf(“%2d%*3d%2d”,输入,:12,345,67,则,a,是,12,b,是,67,3,scanf,函数,不能规定输入数据的精度,(,与,printf,函数不同,),程序找错,main(),float x;,double y;,scanf(“%,7.2f,”,(,不合法),scanf(“%,f,”,(,类型,不,匹配,),不能输入 1234567 来使,x=2345.67;,不能输入 1234567,89,使,y=123456789,4,程序找错,抑制字符,指定输入数据宽度,关于,%u,的说明,2.,格式说明,(1),标准,C,中,scanf,函数不使用,%u,格式,,Turbo C,中可用。,(2),可以指定整型变量输入数据宽度。,(3),可以使用,抑制字符,%*,(4),不能规定输入数据的精度,(,与,printf,函数不同,),(4),不能规定输入数据的精度,(,与,printf,函数不同,),如,:,scanf(“%,7.2f,”,(,不合法),即不能输入 1234
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服