按照输出格式写出以下程序的运行结果 main() { int a,b,c; int x=8,y=10; a=(++x==--y) ? --x:++y;

b=x++; c=++y;printf("a=%d,b=%d,c=%d尀n",a,b,c);}求详解
2025-02-25 05:11:33
推荐回答(4个)
回答1:

够详细了吧,不懂再问……
#include "stdio.h"
int main()
{
int a,b,c;
int x=8,y=10;
a=(++x==--y)?--x:++y;//如果9==9,则a=--x,注意此时x=9,得到a=8 ,最后x=8,而++y没有运行到,故y=9
b=x++; //b=8,运行后x=9
c=++y;//c=10
printf("a=%d,b=%d,c=%d\n",a,b,c);//输出a=8,b=8,c=10
}

回答2:

++在数据前,则在相关运算之前进行++。++在数据后,则在相关运算后进行++。
a = (++x==--y)?--x:++y;
先对x加1,再对y加1. 然后判断x等于y吗? 若等于, 对x减1,然后将x赋值给a。若不等于,对y加1,然后将y赋值给a。

b=x++;
将x赋值给b,然后对x++。
c = ++y;
先将y加1,再将y赋值给c。

回答3:

int a,b,c;
int x=8,y=10;
a = ( ++x == --y ) ? --x:++y;
// ++x==--y是先将x递增,y递减再将x,y比较。
// x递增,y递减后,x = 9, y = 9。
// 所以判断结果为false。
// 所以a==--x。因为此时x已经递增为9了,
// 而这道式子是x先递减再赋给a,x=8
// 所以a=7。
b=x++;
// x先赋值再递增。此时x = 8。所以b = 8。
c=++y;
// y先递增再赋值给c。所以c=10。
printf("a=%d,b=%d,c=%d\n",a,b,c);
// 综上所述,输出结果为:a=7,b=8,c=10

回答4:

b=x++;// b=x; x++;
c=++y;// y++; c=y;
给分