清华大学C语言课件第3章_简单程序幻灯片.ppt

清华大学C语言课件第3章_简单程序幻灯片.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.7 较复杂的格式输入与输出 3.7.1 输出数据格式控制 ⑼ %m.ne和%-m.ne。 m、n和“-”字符的含义与前相同。 此处n指拟输出的数据的小数部分(又称尾数)的小数位数。 若f=123.456,则: printf(%e %10e %10.2e %.2e %-10.2e,f,f,f,f,f); 输出如下: 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 13列 13列 10列 9列 1.23e+002 10列 说明: 未指定n,自动使n=6. 超过给定的10列,乃突破10列的限制,按实际长度输出。 第3个数据共占10列,小数部分占2列。 只指定n=2,未指定m,自动使m等于数据应占的长度。 第5个数据应占10列,数值只有9列,由于是“%-10.2e”, 数值向左靠,右补一个空格。 (注:有的C系统的输出格式与此略有不同) 3.7 较复杂的格式输入与输出 3.7.1 输出数据格式控制 (10)%g,用来输出实数. 它根据数值的大小,自动选f格式或e格式(选择输出时占 宽度较小的一种),且不输出无意义的零。 例:若f=123.468,则 printf(″%f %e %g″,f,f,f); 输出如下: 123.468000 1.234680e+002 123.468 10列 13列 10列 说明: 用%f格式输出占10列,用%e格式输出占13列,用%g 格式时,自动从上面两种格式中选择短者(今以%f格式为短) 故占10列,并按%f格式用小数形式输出,最后3个小数位为 无意义的0,不输出,因此输出123.468,然后右补3个空格。 %g格式用得较少。 3.7 较复杂的格式输入与输出 3.7.2 输入数据格式控制 说明: 除了X,E,G外,其他各式字符必须用小写。 可以在printf函数中的“格式控制”字符串中包含转义字符。 一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。 想输出%,则应该在格式控制字符串中用连续两个%表示 3.7 较复杂的格式输入与输出 3.7.2 输入数据格式控制 格式字符 说明 d, i 用来输入有符号的十进制整数 u 用来输入无符号的十进制整数 o 用来输入无符号的八进制整数 x X 用来输入无符号的十六进制整数(大小写作用相同) c 用来输入单个字符 s 用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志′\0′作为其最后一个字符 f 用来输入实数,可以用小数形式或指数形式输入 e E g G 与f作用相同,e与f、g可以互相替换(大小写作用相同) 表3.3 scanf格式字符 3.7 较复杂的格式输入与输出 3.7.2 输入数据格式控制 字符 说明 l 用于输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le) h 用于输入短整型数据(可用%hd,%ho,%hx) 域宽 指定输入数据所占宽度(列数),域宽应为正整数 * 表示本输入项在读入后不赋给相应的变量 表3.4 scanf的附加格式说明字符 3.7 较复杂的格式输入与输出 3.7.2 输入数据格式控制 说明: 对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。 可以指定输入数据所占的列数,系统自动按它截取所需数据。 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 输入数据时不能规定精度。 例3.13 输入三角形的三边 长,求三角形面积。 假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s=(a+b+c)/2 开始 输入三边长 计算s 计算面积 结束 3.8 顺序结构程序设计举例 #includestdio.h #includemath.h void main() {float a,b,c,s,area; scanf(“%f,%f,%f,a,b,c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area);} 数学函数库 因为要用到其

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档