编译器在编译q=(++j)+(++j)+(++j);这个语句时,先将前两个(++j)+(++j)中++j计算出来(完成后j=7),然后计算前两个i+i(结果为14);接着把第三个++j计算出来(完成后j=8),最后将14和8相加得22.
另外,正如楼上的朋友所说,不同的编译器有不同的处理方法。比如Turbo
C,是先将三个++j计算出来(结果为j=8),然后计算i+i+i(结果为18)。
望采纳。
#include<stdio.h>
int main(){
int pear=3;
int org=2;
int ban=0.5;
int i , j , k;//i , j , k分别表示梨、橙子、香蕉的数量(单位斤)
for( i=0; i<45; i++){
for( j=0; j<45; j++){
for( k=0; k<45; k+=2){
if( pear*i + org*j + ban*k == 45 && i+j+k==45){
printf("梨子:%d,橙子:%d,香蕉:%dn" , i , j , k);
}
}
}
}
}