判断一个整数是否为能开方数

TIPS

1.  在c语言中,变量也可以拥有一个新的类型:布尔类型,_Bool flag = true或者_Bool flag = false.

这个布尔类型就是专门用来表示真假的,要使用布尔类型,必须得包含一个头文件: “stdbool.h”

true的本质就是1,false的本质就是0

判断一个整数是否为能开方数

1.首先这个数必须是>=0的,不然开不了平方。
2. 然后如果一个数不是平方数的话,用sqrt(该数)去开平方会得到一个非整数(如2.685347),这时候就对它进行强制类型转换,把这个双精度浮点数强制转换成整数,然后再与sqrt(该数)进行比较即可。
3.上面的强制类型转化成整数之后,如果用==进行比较,这时候会牵扯到之前讲过的一个算数转换。就是在运算的时候,int 类型会先转换为double类型。如(1转换为1.000000)

回顾算术转换

1. 之前讲了整型提升,那我们是指表达式里面的char, short类型需要提升,那如果表达式里面没有char,short,而是那些int,long,float,double,它的所有这些操作数都是大于等于整型的,那又怎么办呢?这个时候就需要讲第二个点:算术转换。
2. 如果表达式某个操作符的各个操作数属于不同类型,除非其中一个操作数转换为另一个操作数的类型,否则操作无法进行。到底什么意思呢?比如说一个int类型的与另外一个float类型的两个操作数相加,因为它们各自的类型都是大于等于整型的,并且操作数之间类型不一样,这时候就不能直接进行操作,编译器会进行类型转换,也就是算术转换。会把int类型转换为float类型(这里有各种类型的转换顺序,有了这个优先级之后,就可以明白到底是谁转化为谁) 

 2 .算术转换讨论的类型都是大于等于整型类型的。当然算术转换也是隐式偷偷发生的。 

 3. 但是算术转换会有一些潜在的问题,比如说会有精度的丢失。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

絕知此事要躬行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值