一道c语言编程题,要让x=y y=z z=x求大佬解答

Python020

一道c语言编程题,要让x=y y=z z=x求大佬解答,第1张

这种循环赋值,一般需要借助一个临时变量,程序为:

main()

{

int x,y,z,t

scanf("%d%d%d",&x,&y,&z)

printf("交换前:a=%d,b"%d,c=%d\n",x,y,z)

t=x

x=y

y=z

z=t

printf("交换后:a=%d,b"%d,c=%d\n",x,y,z)

}

有什么问题,请留言。

顺序是从左往右,这样写也是合法的,只不过结果未必是你想要的结果。

它相当于(x>=y)>=z

括号里的值是0或1,结果就是0或1 再和z 比较。

如果想表示x≥y≥z ,

(x>=y)&&(y>=z)

先说明,该题采用很糟糕的书写风格,难以理解,难以维护,难以纠错。

由于表达式之间没有用()明确操作,所以操作符的优先级采用C语言的缺省设定。这里主要涉及以下几个操作符:

>= 比较运算符

&&逻辑与运算符

?: 三操作数的条件运算符

优先级如下:

“>=” >“&&” >“?:”

因此该表达式可以改写成:

(x>=y)&&(x>=z)?x:(y>=x)&&y>=z?y:z

继续:

((x>=y)&&(x>=z))? x : ((y>=x)&&y>=z) ? y : z

因此,题目的语义是:

取x, y, z中的最大值。相当于:

max(x, y, z)