求a=10,a+=a-=a*=a的编程?
答案:2 悬赏:50 手机版
解决时间 2021-03-25 11:28
- 提问者网友:临风不自傲
- 2021-03-24 11:49
求a=10,a+=a-=a*=a的编程?
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-03-24 12:37
你是想问这条表达试的结果是什么?
我算了一下 是:0
上面的试子可以理解成这样:
a = a + ( a - (a * a) );
其实准确的说应该是:a=(a=(a+(a=(a-(a=a*a))))); 这样的;
下面是我用VC++6.0编写的一段计算这个式子的代码:
#include
void main()
{
int a=10;
//a+=a-=a*=a;
a=(a=(a+(a=(a-(a=a*a)))));
printf("a=%d\n",a);
}
你可以去验证一下的。
希望可以帮到你的忙^ ^追问a = a + ( a - (a * a) ),这样计算,a不是等于-80吗?追答因为a 是一个变量,
变量的值是会被改变的,
你的这个 a+=a-=a*=a 用到的是复合赋值运算符
比如:a -= 8 等价于 a = a-8; a *= y+6 等价于 a = a * (y + 6);
所以说你这个题目可以等价于: a=(a=(a+(a=(a-(a=a*a)))));
我说可以理解成a = a + ( a - (a * a) ),其实是一种人思维里的结果(可能只有我- -)
你要每时每刻的记得,每算一步 a的值就会跟着改变(因为算出来的结果是赋给a的)
a=(a=(a+(a=(a-(a=a*a)))));
第一步计算最内层括号里的: a=a*a 之后 a的值就变成了 100;
接着算下一层括号里的: a=a-100; a的值就变成了 0;
接着算再下一层括号里的: a=a+0; a的值还是 0;
我算了一下 是:0
上面的试子可以理解成这样:
a = a + ( a - (a * a) );
其实准确的说应该是:a=(a=(a+(a=(a-(a=a*a))))); 这样的;
下面是我用VC++6.0编写的一段计算这个式子的代码:
#include
void main()
{
int a=10;
//a+=a-=a*=a;
a=(a=(a+(a=(a-(a=a*a)))));
printf("a=%d\n",a);
}
你可以去验证一下的。
希望可以帮到你的忙^ ^追问a = a + ( a - (a * a) ),这样计算,a不是等于-80吗?追答因为a 是一个变量,
变量的值是会被改变的,
你的这个 a+=a-=a*=a 用到的是复合赋值运算符
比如:a -= 8 等价于 a = a-8; a *= y+6 等价于 a = a * (y + 6);
所以说你这个题目可以等价于: a=(a=(a+(a=(a-(a=a*a)))));
我说可以理解成a = a + ( a - (a * a) ),其实是一种人思维里的结果(可能只有我- -)
你要每时每刻的记得,每算一步 a的值就会跟着改变(因为算出来的结果是赋给a的)
a=(a=(a+(a=(a-(a=a*a)))));
第一步计算最内层括号里的: a=a*a 之后 a的值就变成了 100;
接着算下一层括号里的: a=a-100; a的值就变成了 0;
接着算再下一层括号里的: a=a+0; a的值还是 0;
全部回答
- 1楼网友:春色三分
- 2021-03-24 14:12
public class First{
public static void main(String []args){
int a=10;
a=a+;//计算结果 :a=a+1,即:11
a=a-;//计算结果 :a=11,a-=a-1;即:a=10;
a=a*;//a*=a*1,即:a=10;
}
}
public static void main(String []args){
int a=10;
a=a+;//计算结果 :a=a+1,即:11
a=a-;//计算结果 :a=11,a-=a-1;即:a=10;
a=a*;//a*=a*1,即:a=10;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯