C语言中三目运算符及其应用

       三目运算符是条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
表达式1? 表达式2: 表达式3 
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。
例如条件语句: 
if(a>b) max=a;
else max=b;
可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
使用条件表达式时,还应注意以下几点:
1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
2. 条件运算符?和:是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
例如:
a>b?a:c>d?c:d应理解为
a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条

件表达式。

以下两个例题展示了,一般三目运算符的应用和嵌套三目运算符的应用。

1:个人所得税收取规定:工资大于1000元的部分将扣除5%的个人所得税。小于1000元的部分不扣除个人所得税。要求用户输入基本工资,计算税后工资。 (用三目运算符来做)   

2: 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。(用三目运算符来做) 

1:

#include <stdio.h>

int main(int argc,const char *argv[])

{

float m,a;            //计算税后工资 一般的三目运算符

    printf("请用户输入基本工资是:\n");

    scanf("%f",&m);

    a=m-(m-1000)*0.05;

    m=(m>1000)?a:m;

    printf("税后的工资是:%.2f\n",m);

return 0;

}

2:

#include <stdio.h>

int main(int argc,const char *argv[])

{

   

    float grade;          // 嵌套的三目运算 输出等级 ABC

    char a;

    printf("请输入同学的分数是:\n");

    scanf("%f",&grade);

    a=(grade>=90)? 'A':(grade>60? 'B':'C');//此时需要一个字符a用来接收

    printf("该同学的成绩表示为:%c\n",a);

return 0;

}



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值