c语言算法问题

时间:2015.10.23 发布人:Z1050456851

c语言算法问题

已解决问题

谷歌Z1050456851用户在2015.10.23提交了关于“瓜子二手车c语言算法问题”的提问,欢迎大家涌跃发表自己的观点。目前共有4个回答,最后更新于2025-02-14T17:33:45。

#include<stdio.h>voidmain(){intx,y,z;//定义整型变量x=y=z=2;//x,y,z的值均为2z=(x*=2)+(y+=4)+2;printf(“x=%d,y=%d,z=%d\n”,x,y,z);x+=y*=z-=2;//复合的赋值赋值运算符printf(“x=%d,y=%d,z=%d\n”,x,y,z);x*=y/=z-=x;//复合的赋值赋值运算符printf(“x=%d,y=%d,z=%d\n”,x,y,z);}

最后为何有y=-1,x=-64,新手解

希望大家能够帮助她。

详细问题描述及疑问:

#include<stdio.h>voidmain(){intx,y,z;//定义整型变量x=y=z=2;//x,y,z的值均为2z=(x*=2)+(y+=4)+2;printf(“x=%d,y=%d,z=%d\n”,x,y,z);x+=y*=z-=2;//复合的赋值赋值运算符printf(“x=%d,y=%d,z=%d\n”,x,y,z);x*=y/=z-=x;//复合的赋值赋值运算符printf(“x=%d,y=%d,z=%d\n”,x,y,z);}

最后为何有y=-1,x=-64,新手解

期待您的答案,感谢你,我会记得你对我的好的 !
希望以下的回答,能够帮助你。

第1个回答

用户名:whoami1978  

来自点:赋值(=)运算是从右往左的

所以

x*=y/=z-=x;//此时x=64,y=60,z=10

先计算胡机推杀z-=x;

z=z-x=10-64=-54

再算y/=z;

y=y/z=60/(-54)=-1//int运算的结果只取整数部分

最后计算x*=尼想y

x=x*y=64*(-1)=-64

第2个回答

用户名:闲人丶免进丶芯  

就是像数学那样直接算出来的

第3个回答

用户名:胡卜恩  

定义的**类型不对吧

第4个回答

用户名:鬯鬯  

变量定义的不正确