帮忙算道题,

来源:百度知道 编辑:UC知道 时间:2024/06/07 02:33:17
int num1,num2=10

num1=(++num2)+(++num2);
num1=(++num2)+(++num2)+(++num2);
num1=(num2++)+(num2++);

求num1?
大家帮忙拉,我刚学没弄明白.
能详细点帮我解答这题吗? 谢谢了.

记住规律++x,则先算x递增
x++,则在表达式中x不变,运算过后x递增

楼上的好像错了
num1 num2
24 12
45 15
30 17

num1=(++num2)+(++num2);
23 12
num1=(++num2)+(++num2)+(++num2);
42 15
num1=(num2++)+(num2++);
30 17

第二行:num1 = 11+12 num1 = 23 执行完这句num2 = 12
第三行:num1 = 13+14+15 num1 = 42 执行完这句num2 = 15
第四行:num1 = 15+16 num1 = 31 执行完这句num2 = 17

所以num1最终值为31

int num1,num2=10

num1=(++num2)+(++num2);
num1=(11)+(12);此时num2=12

num1=(++num2)+(++num2)+(++num2);
num1=13+14+15; 此时num2=15;

num1=(num2++)+(num2++);
num1=15+16; 执行完本表达式后,num2=17,因为num2++是后置式,当前值依然是num2,而下一个表达式执行的时候它才会变为num2+1

求num1?
num1=31

因为正好开着tc,就把你的复制进去编译了下,答案是
24,12
45,15
30,17
具体程序没看呵呵,就帮大家算算得数.3楼好象是对的。
-------------
补充一下,++a的意思是每次运算的时候他先做a=a+1,然后用新值参加这次运算。
num1=(++num2)+(++num2);
这里面+算是一次运算,所以得数并不是11+12,而是11+13