2-6 编程练习的第一个答案

2-6 编程练习的第一个答案

图片描述

问题描述:

平均数那个是11.5吧

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

同学你好,同学写的是将m+n的值强转为float类型的,float类型和整数类型的数值进行运算会保留小数位,所以结果是11.5

这里如果输出效果想要与效果图一致,就不需要强转为float类型。m和n的值是int类型,2也是int类型,int类型的数值进行运算结果还是int,会舍去小数部分,所以效果图上是11.0

有关代码的问题,建议同学下次以复制粘贴的形式进行反馈,方便老师进行测试

祝学习愉快~


  • m+=3;n+=5;

    这个练习前面的课程又没讲。。。。我还是通过网上看到的,前面有个复合赋值运算也是,根本就没讲就出题目,你们作业的设置不合理啊。

    2021-06-11 23:23:19
与何人 2021-07-11 11:04:58

强制转换后为浮点数据。

不强制转换为整型数据。

计算方式:先运算赋值符号右边的表达式。再赋值给赋值号左边的表达式。

慕无忌7047759 2021-07-01 11:55:28

int可以隐式转换float,强转前(m+n)/2为int类型值为11,会省去后面小数点,int赋值float后得到11.0,

如果进行float类型强制转换,就会保留后面小数点。

其实很简单 2021-06-21 22:02:10
public static void main(String[] args) {
//将变量m的初值赋值为10,变量n的初值赋值为5
int m=10,n=5;

//变量m的值加3,n的值加5
m=m+3;
n=n+5;

//求m和n的平均值,并将结果存于变量p中
double p=(m+n)/2;


//求m的平方乘以n的平方,并将结果存于变量q中
double q=(m*m)*(n*n);


//将p和q的值打印输出
System.out.println("m和n的平均值为:"+p);
System.out.println("m的平方乘以n的平方为:"+q);

}


  • double p=(m+n)/2;因为(m+n)/2的值是整型,所以他的值是11而不是11.5。

    2021-06-21 22:05:24
做条咸鱼才最好 2021-06-11 23:24:43

如上面所言,不过我写的是double复制变量q p,没有强转double。


有个问题想问下,m+=3;这种 练习前面的课程没讲吧,还是我漏掉了?我还是去网上查才知道这个的。

  • 同学你好,1、同学这样直接写为double也是可以的。

        ​2、在当前小节中,并没有要求同学使用+=这个符合运算符,在上述代码中,只是该同学使用了+=这个复合运算符,而且在后面2-8的小节中,老师有具体的讲解,比如

    https://class.imooc.com/lesson/2051#mid=48701

    http://img1.sycdn.imooc.com//climg/60c4150209abe92812250532.jpg

    可能是该同学先去学习了后面的小节,再来回头做这个编程练习,所以出现了这个+=的复合运算符。

    祝学习愉快~


    2021-06-12 10:02:16
引梦入魇 2021-06-03 10:47:59

问题出在float p = (float)(m+n)/2 这段代码里的强制转换float类型

int可以隐式转换float,强转前(m+n)/2为int类型值为11,int赋值float后得到11.0

强制转换float后,(float)(m+n)/2为float类型值为11.5,float赋值float后得到11.5


不知道我这么想是不是正确

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师