- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课件第3章解读
scanf函数指定输入数据所占的宽度时,将自动按指定宽度来截取数据。 例:scanf(“%2d%3d”,a,b); 若输入为:1223100 函数截取12存入地址a,截取231存入地址b中。 例:scanf(“%3d%5d%f ”,a,b,x); 若输入:2001200 4.1 则200传a,1200传给b,4.1传给x。 遇空格或不可转换的字符,读入的字符将减少。 用scanf函数输入实数,格式说明符为“%f”,但不允许规定精度。 如:%10.4f是不合法的。 如果输入时类型不匹配,scanf函数将停止处理,其返回值为0。 如:int a,b; char ch; scanf(“%d%c%3d”,a,ch,b); 若输入:12 a 23 则函数将12存入地址a,空格作为字符存入地址ch中,字符a作为整型数读入,出现非法输入,程序终止。 若以字符型输入数据时,要注意输入格式: 如:char a,b; scanf(“%c%c”,a,b); 若输入:wx,则将w存入地址a,x存入地址b。 若输入:w x,则将w存入地址a,空格存入地址b。 %[ * ][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。 d(D) 十进制整数 o(O) 八进制整数 x(X) 十六进制整数 i(I) 自动根据数头分辨十、八、十六进制 u 无符号十进制整数 c 单个字符 s 字符串 f(e,g,G) 实数 % 百分号 type字符表 scanf语句格式说明部分的一般格式为: 3.使用scanf应注意: 执行scanf( )输入数据时,在两个数据之间允许以一个或多个空格间隔,也可以用回车键、tab键分隔。 实数不许规定精度,像%.4f是不合法的。 %后面有*号时,该数据会被禁止使用。 %后面有数字,可以自动截取该长度的数据作为输入值。 如果输入时类型不匹配则停止处理,返回0。 如:scanf(“%3d%*5d%f ”, a,x); 如果输入:2001200 4.1 则200传给a,4.1传给x,1200不赋给任何变量。 例1、输入圆的半径,输出圆的周长和面积。 分析: 1.定义实型变量r、l、s用于存放半径、周长、面积; 2.调用输入函数,输入r: 3.分别利用周长公式和面积公式求出l、s; 4.调用输出函数输出l、s。 程序: #include stdio.h main( ) { float r,l,s; scanf(“ %f ”,r); l = 2 * 3.14159 * r; s = 3.14159 *r * r; printf(“\n l=%.4f ”,l); printf(“\n s=%.4f ”,s); } 分析: 1.输入小写字母存入变量a; 2.转换成大写a = a-32; 3.输出 a。 例2、从键盘输入一个小写字母,用大写形式输出该字母。 #include “stdio.h” void main( ) { char a; } 程序: 思考:如何使程序可以处理任何字符的输入。即判断输入的是小写字母,才转换成大写;如果输入的其他字符,则直接输出。 printf(“input a letter:”); a=getchar( ); a=‘a’=aa=‘z’?a-32:a; printf(“%c\n”,a); a=a-32; printf(“%c\n”,a); 例3、输入任意3个整数,求他们的平均值。 分析: (1)输入3个整数存入变量num1,num2,num3; (2)求3个整数的平均值,赋给变量average; (3)输出average. 程序: main( ) { int num1,num2,num3; float average; printf(“Please input three numbers:”); scanf(“%d,%d,%d”,num1,num2,num3); average=(num1+num2+num3)/3.0; printf(“average=%7.2f\n”,average); } 当输入:3,5,6(回车) 输出为:average=□□□4.67 main( ) { int i , j , k; scanf(“%d,%d,%d”,i,j,k); ((i%2 != 0?1:0) + (j%2 != 0?1:0)+(k%2 != 0?1:0))==2?printf(“
文档评论(0)