学习c++的第十天 古埃及金字塔——单精度实数float

1.课前废话

了解小编的都知道,小编是一个“阴阳不定”的人,一会儿更新快,一会儿更新慢,那也是小编迫不得已啊,所以如果我不更新了,大家也不要怪罪,望大家谅解。

另外小编在今后会将内容加进一些其他,也是希望大家学的更好更多。

还有小编也改名了,改成“三国——张飞”,没错,就是那个天不怕地不怕的燕人张翼德,有人相当我大哥二哥我也不阻止。

2.情景导入

古埃及国王也称为法老,是古埃及最大的奴隶主,拥有之高无上的权利,他们被称为神的化身。

他们为自己修建了巨大的陵墓因其外形像汉字的“金”字,被称为“金字塔”。金字塔是法老权力的象征,埃及至今共发现96座金字塔。

3.课前小试

金字塔的底是正方形,侧面由四个大小相等的等腰三角形构成。试编译程序,输入底和高,输出三角形的面积。

三角形面积公式:三角形的高*三角形的底/2。

参考答案:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,h,s;
    cout<<"a,b=";
    cin>>a>>h;
    s=a*h/2;
    cout<<"s="<<s<<endl;
    return 0;
}

运行结果:

a,h=3 5(红色部分为输入的)

s=7

4.小明的插嘴

不对呀?三角形的底是3米,高是5米,面积应为7.5平方米,程序为何输出7,而不输出7.5呢?

5.张飞之讲解

程序执行赋值语句“s=a*h/2;”时,先计算出a*b/2的值,但因为变量a,h和常量2都是整型,计算3*5/2时就会自动取整(只取小数部分,整数部分截去)为7,然后把7赋值给s。

为了正确的储存s的值,需要把s定义为单精度实数(浮点数)float.

6.张飞之纠正

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,h;
    flaot s;
    cout<<"a,h=";
    cin>>a>>h;
    s=a*h/2.0;          //这里要写实数2.0,不能写成整数2
    cout<<"s="<<s<<endl;
    return 0;
}

运行结果:

a,h=3 5(红色部分为输入的)

s=7.5;

同学们,想一下为什么求面积时要写成“s=a*h/2.0;”,不能直接写成“s=a*h/2;”呢?

虽然已经把s定义为单精度实数float,但因为变量a,b和常量2都是整型,计算a*h/2时还是按整形的方式来计算,其结果就自动取整为7,然后把整形7自动转化为单精度实数7.0,再赋值给单精度实数变量s。

而“s=a*h/2.0;”,虽然变量a和h为整型,但常量2.0是实数,计算3*5/2.0时就按实数方式来计算,就是7.5了。

7.课后作业

云兰阁A1001到A1021都能做了。

答案小编单独发。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值