网站大量收购闲置独家精品文档,联系QQ:2885784924

第04章C语言.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第04章C语言

第4章 选择结构 关于优先次序: 前4种关系运算符(<,<=,>,>=)的优先级别相同,后两种也相同。前4种高于后2种。例如,“>”优先于“==”。而“>”与“<”优先级相同。 (2) 关系运算符的优先级低于算术运算符。 (3) 关系运算符的优先级高于赋值运算符。 以上关系见图4.1。 而“-”优先于“”,因此应先进行“4-!0”的运算,由于“!”的级别最高,因此先进行“!0”的运算,得到结果1。然后进行“4-1”的运算,得结果3,再进行“83”的运算,得0,最后进行“10”的运算,得0。 实际上,逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。可以是字符型、实型或指针型等。系统最终以0和非0来判定它们属于“真”或“假”。例如     c d 的值为1(因为‘c’和‘d’的ascII值都不为0,按“真”处理)。 (2) a||b||c只要a为真(非0),就不必判断b和c;只有a为假,才判别b;a和b都为假才判别c。见图4.4。 若表达式的值为非0,按“真”处理,执行指定的语句。假如有以下if语句:  if(3) printf(“O.k.”); 是合法的,执行结果输出“O.k.”,因为表达式的值为3,按“真”处理。由此可见,表达式的类型不限于逻辑表达式,可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。例如,下面的if语句也是合法的:   if(a) printf(%d,a); 执行结果:输出‘a’的ASCII码97。 (2) 第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。例如: 形式),这样if的数目和else的数目相同,从内层到外层一一对应,不致出错。 如果if与else的数目不一样,为实现程序设计者的企图,可以加花括弧来确定配对关系。例如:   if()  { if ()语句1}  else语句2(内嵌if) 这时{ }限定了内嵌if语句的范围,因此else与第一个if配对。 leap=0; else  leap=1; 时,要注意一个问题:由于disc(即b2-4ac)是实数,而实数在计算和存储时会有一些微小的误差,因此不能直接进行如下判断:if(disc==0)……因为这样可能会出现本来是零的量,由于上述误差而被判别为不等于零而导致结果错误。所以采取的办法是判别disc的绝对值(fabs(disc))是否小于一个很小的数(例如1e-6),如果小于此数,就认为disc=0。程序中以realpart代表实部p,以imagpart代表虚部q,以增加可读性。 运行结果如下:   ① 1,2,1 The equation has two equalroots∶-1.0000 画出NS流程图表示算法(图4.14)。 图4.14 据此编写程序如下: #includemath.h main() { float a, b, c, d, disc, x1, x2, realpart, imagpart; scanf(%f,%f,%f,a,b,c); printf(The equation); if(fabs(a)<=le-6)   printf(is not a quadratic); else    {disc=b*b-4*a*c; if(fabs(disc)<=le-6) printf(has two equal roots:%8.4f\n,-b/(2*a)); else if(disc>le-6)  { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf(has distinct real roots:%8.4f and %8.4f\n,x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(has comPlex roots∶\n); printf(%8.4f+%8.4fi\n,realpart,imagpart); printf(%8.4

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档