顺序结构6

作者: 时间:2020-07-10 点击数:

强制类型转换
  (类型)(表达式)
  功能:把表达式的值转化为指定的类型
  (int)(x+y)      :把x+y的值转化为整型
  (int)x+y        :把x的值转化为整型,然后与y相加(x的值是没有任何影响的)
问题:输入任意一个正整数,判断它是否为完全平方数,如是,输出“yes!”,否则输出“no!”
分析:
     输入一个正整数n
  求n的平方根x  // float x; x=sqrt(n);
  判断x是否只有整数部分(小数部分是0),如是yes!,否则输出no!  //?:
提示: ((int)(x+0.5)==x)?printf("yes!"):printf("no!");
注意:(1)(int)(x+0.5)==x    能否写成(int)x==x   (不准确)
     (2)floor(x+0.5)==x     完全可以(推荐)
运算符的优先级
   优先级:出现在同一个表达式中时的执行的先后次序
一元运算符(++,--,!,+,-)--》强制类型转换--》算术运算符(*,/ ,%)--》加减运算符(+,-)-
-》》移位运算符(<<,>>)-->关系运算符(<,<=,>,>=)--》相等运算符(==,!=)-->逻辑与运算符(&&)-
-》逻辑或运算符(||)--》条件运算符(?:)--》赋值运算符(=,+=,-=,*=等)--》逗号运算符
表达式:
     x属于(5,9)
  x>5&&x<9    完全等价    (x>5)&&(x<9)
需要明确先执行什么运算符,用()把该运算符包含的表达式括起来
    x=-b+sqrt(b*b-4*a*c)/2*a;  //error
 x=(-b+sqrt(b*b-4*a*c))/(2*a);   //right
 判断闰年(year)
 year%400==0  ||  year%4==0  && year%100!=0    //right
    (year%400==0)||((year%4==0)  && (year%100!=0))   //right  推荐

[1] [2] 下一页

Copyright© 2020 Anyang Institute of Technology.All rights reserved.

学院地址:河南省安阳市黄河大道西段