C语言程序设计教程(第三版)课后习题9.8 (C语言)

problem description

C语言程序设计教程(第三版)课后习题9.8 (C语言)_第1张图片


知识点

考察宏和条件表达式的运用,例如:max=(a>b)?a:b ;
格式:表达式1?表达式2:表达式3


注意

条件运算符是由两个符合(? 和 :)组成,必须一起使用 。要求有3个操作对象,称为三目(元)运算符,它是C语言中唯一的一个三目运算符。


代码

#include
#define M(x,y) (((x)>(y))?(x):(y))
#define MAX(a,b,c) (M((a),(M((b),(c)))))
int max(int a,int b,int c)
{ 
    int t; 
    t=a>b?a:b; 
    t=t>c?t:c; 
    return t;
}
main()
{ 
    float a,b,c; 
    float m; 
    scanf("%f %f %f",&a,&b,&c); 
    m=MAX(a,b,c); 
    printf("%.3f\n",m); 
    m=max(a,b,c); 
    printf("%.3f\n",m);
}

运行结果
C语言程序设计教程(第三版)课后习题9.8 (C语言)_第2张图片


总结

条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。
条件运算符优先于赋值运算符。

你可能感兴趣的:(C语言程序设计教程(第三版)课后习题9.8 (C语言))