C语言程序设计第3章输入输出.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 4.3 scanf()语句交互式输入方法 数据输入 【例4.9】计算300.0×0.05。 #include stdio.h int main() { float num1,num2,product; num1=300.0; num2=.05; product=num1*num2; printf(%f * %f = %f\n,num1,num2,product); return 0; } * 【例4.10】计算任意两个整数的乘积。 #include stdio.h int main() { float num1, num2, product; printf(请输入被乘数:); /*输入数据提示*/ scanf(%f,num1); printf(请输入乘数:); scanf(%f,num2); product = num1 * num2; printf(%f * %f = %f\n ,num1,num2,product); return 0; } * “如影随行”换行符 【例4.11】换行符对程序输入输出的影响 #include stdio.h int main() { char fkey, skey; printf(请输入一个字符: ); scanf(%c,fkey); printf(刚才键入的字符是 %d,fkey); printf(\n请输入另一个字符 : ); scanf(%c,skey); printf(刚才键入的字符是 %d\n,skey); return 0; } 当scanf() 函数用于接收字符时,有时会得到意想不到的结果。该程序使用scanf() 函数接收键盘输入的一个字符,并把它存储到变量fkey中,然后使用第二个scanf() 函数接收第二个字符,存储到变量skey中。程序运行结果如下: 响应第一个提示时,按下了两个键: A键和回车键。 在大多数计算机系统中,这两个字符在它们 被键入后立即存储在被称为键盘缓冲区(buffer) 的临时存储区中。 从字符的观点来看,这表示不同的字符输入。 第一个字符是A,被存储为65, 第二个字符用回车键的ASCII码存储在缓冲区中。 第二次调用scanf()函数时,它会获取这个代码而 不会等待任何另外的按键。 这些键一般不会影响数据的输入 。 只有在已经输入某些数据之后 请求输入一个字符时, 这些控制字符才会影响输入结果。 * 【例4.12】 处理“如影随行”换行符的方法。 #include stdio.h int main() { char fkey,skey; printf(请输入一个字符: ); scanf(%c%c,fkey,skey);/*回车键的代码给变量skey*/ printf(刚才键入字符ASCII码是%d,fkey); printf(\n请输入另一个字符:: ); scanf(%c,skey); /*接收另一个代码*/ printf(刚才键入字符的ASCII码是%d\n,skey); return 0; } 程序中第一个scanf()函数接收两个紧接着的字符,当用户输入m并按压回车键时,m→fkey,回车键→ skey。第二次调用scanf()函数时,把下一个输入的字符的n → skey中,也就屏蔽了回车键对程序运行产生的副作用。 * 输入验证 一个健全的程序应该能检测并有效地响应意外的输入。 【例4.13】计算三个数的平均值。 #include stdio.h int main() { int num1,num2,num3; double average; /*获得输入数据*/ printf(请输入三个整数,数据之间用空格分隔: ); scanf(%d %d %d,num1,num2,num3);/*计算平均值*/ average = (num1 + num2 + num3) / 3.0;/*显示结果*/ printf(The average of %d ,%d,and %d is %f\n, num1,num2,num3,average); return 0; } 当输入3个整数时,程序正确。 但一旦输入的数据不完全符合要求, 第二个数输入20.5时,就会发生错误。 20→num2,无效的字符(小数点) →num3, 被转换为-858 933 460存储在变量中。 所以最后的结果为10,20和-858 933 460 的平均值-286 331 143.333 333。 第三个输入的数值为非整型数据, 则最后输入的数据的整数部分被赋值给变

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档