中易网

求解(x+2y)-i=6x+(x-y)i

答案:1  悬赏:10  
解决时间 2021-01-11 08:49
  • 提问者网友:最爱你的唇
  • 2021-01-10 16:18
求解(x+2y)-i=6x+(x-y)i
最佳答案
  • 二级知识专家网友:不如潦草
  • 2021-01-10 17:32
这种题与编译器有关,因为C++标准没有对这种问题做出规定,因此具体计算方法完全由编译器决定,也就是没有统一标准,如果考试出这种题,那就很垃圾。具本人所知,像这种类型的题,应该有两种算法,如下第一种: i=5; x=(++i)+(++i); 首先(++i)+(++i)整体为一个表达式,因为++i的优先级高于+,所以先计算++i,这样计算两次++i之后,i的值就变为7,最后结果就为14。这个原理相当于如下表达式x=a*b+c*d;先计算a*b再计算c*d,然后把两者结果相加,这很容易理解。第二种:分步计算:即先把第一个++i与后面的+作优先级比较,这时++i优先级高,计算++i,得到6,然后再计算6+(++i),这时发现后面的++i优先级高,所以计算后面的++i得到i=7,然后6+7就得到整个表达式的结果为13。这个原理相当于x=a*b+c*d;先计算a*b比如结果为z,再把z与c*d相加,即z+c*d,然后再计算c*d比如结果为y,然后再把z与y相加。可以看到,对于以上两种算法都是正确的,但是却得到了不同的结果,因此对于这种问题没有标准答案,毕近自加运算在中间有一次赋值运算,这与一般的四则运算是不相同的。因此,得到13和11的,使用的是第2种算法,而得到14和10的,采用的是第1种算法,你可以在不同编译器下尝试
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息