永发信息网

请帮我分解C语言这段是怎么计算的

答案:3  悬赏:50  手机版
解决时间 2021-04-14 08:23
  • 提问者网友:暮烟疏雨之际
  • 2021-04-13 15:48

main()
{
int x=4, y=25,z=2,t;
t=z=(--y/++x)*z--;
printf("%d%d",t,z);
}

结果8和7。

main()
{
int x=4, y=25,z=2,;
z=(--y/++x)*z--;
printf("%d%d",t,z);
}

为什么这段结果就是7。

要详细的分解他的计算过程。

最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-04-13 16:56

第一个:


t=(24/5)*2=4*2=8,z也等于8


z自减1后为7


第二个:


因为你程序里根本就没有定义t,所有值有z的值为7了

全部回答
  • 1楼网友:洎扰庸人
  • 2021-04-13 18:44

main() { int x=4, y=25,z=2,t; t=z=(--y/++x)*z--;//先算括号里的,--y后,y=24,++x,x=5;24/5=4(因为两个都是INT型的所以只有整数部分)

在是4*z--相当于4*2=8;因为是后减所以T=8,z自减1后Z=7; printf("%d%d",t,z); }

2:main() { int x=4, y=25,z=2,; z=(--y/++x)*z--;//与上面相同z=(24/5)*2=8,在自减1,z=7; printf("%d%d",t,z);//t没有定义当嘛,应该要报错哟。 }

  • 2楼网友:罪歌
  • 2021-04-13 17:56

我运行你的程序,第一段是8和8,第二段是8,怎么你的编译器有问题?

计算过程如下:

第一段程序中,++和--优先级大于+,-,*,/,前缀++,--表示先将数加(减)1,再用于所在的运算式中运算;而后缀++,--表示先将数用于所在的运算式中运算,再将数加(减)1。所以(--y/++x)*z--=(24/5)*2=4*2=8,然后依顺序z=z--=1,z=8,t=z=8,所以结果是8和8。

第二段程序z的计算过程同上,结果也是8.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯