m和n的平均值应该是11.5吧?是实例输出错了还是只要求用int来运算?

m和n的平均值应该是11.5吧?是实例输出错了还是只要求用int来运算?

public class MathDemo {

    public static void main(String[] args) {

//将变量m的初值赋值为10,变量n的初值赋值为5

    int m = 10,n=5;

    //变量m的值加3,n的值加5

    m+=3;

    n+=5;

    //求m和n的平均值,并将结果存于变量p中

    double p = ((double)m+n)/2;

    System.out.println("m和n的平均值为:"+p);

    //求m的平方乘以n的平方,并将结果存于变量q中

    double q = m*m*n*n;

    System.out.println("m的平方乘以n的平方为:"+q);

    //将p和q的值打印输出

    


}

}



正在回答

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

4回答

因为对于/运算,如果分子分母都是整数,那么结果是整除后的值,所以(m+n)/2的结果为11,然后赋值给p,将整型转换为double类型,所以结果就是11.0。输出11.5,因为分子或分母为double类型的数,比如将2改为2.0。

慕设计2117131 2019-04-15 22:05:45

除法/运算规则:整数分子/整数分母 结果=整数  

                         浮点数分子/整数分母 结果=浮点数

                          整数分子/浮点数分母 结果=浮点数

                           浮点数分子/浮点数分母 结果=浮点数

如:m+n为23是整数,2也为整数,即使按数学角度m+n/2也应该是11.5,但由于都是整数,输出也只能是整数,所以结果为11

而代码中“((double)m+n)“”语句是强行把m+n强制转换成浮点数类型,所以m+n就变为了浮点数,当浮点数m+n/整数2,结果自然也为浮点数,所以结果就为11.5


淡淡淡定o 2019-04-10 11:17:19
public class MathDemo {
    public static void main(String[] args) {
	//将变量m的初值赋值为10,变量n的初值赋值为5
    int m = 10,n=5;
    //变量m的值加3,n的值加5
    m+=3;
    n+=5;
    //求m和n的平均值,并将结果存于变量p中
    double p = (m+n)/2;
    System.out.println("m和n的平均值为:"+p);
    //求m的平方乘以n的平方,并将结果存于变量q中
    double q = m*m*n*n;
    System.out.println("m的平方乘以n的平方为:"+q);
    //将p和q的值打印输出
    

	}
}

这里  m  n 是int类型,对于/运算,分子分母是整形,结果也是整形,我们知道在Java中是先运算在赋值,所以(m+n)/2=11,   11再赋值给double类型 变量p会自动转换为11.0

诚2 2019-04-09 23:42:07

public class MathDemo {

    public static void main(String[] args) {

//将变量m的初值赋值为10,变量n的初值赋值为5

    double m=10;

    double n=5;

   

    //变量m的值加3,n的值加5

    m=m+3;

    n=n+5;

 

    //求m和n的平均值,并将结果存于变量p中

    double p=(int)(m+n)/2;

   

   

    //求m的平方乘以n的平方,并将结果存于变量q中

    double q=(m*m)*(n*n);

    //将p和q的值打印输出

    System.out.println("p="+p);

    System.out.println("q="+q);

}

}


  • 诚2 #1
    (m+n)/2是11.5,这是double类型的值,所以我们要去掉小数点后的0.5,就要先强制转换成int类型,这时p的值是11,因为double比int大,所以可以直接赋值给double,所以p的值又变回了double,值是11.0
    2019-04-09 23:54:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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