C语言 条件运算符
条件运算符为三目运算,包含三个操作数,三个操作数由“?”和“:”连接,其形式为:
<表达式1> ?〈表达式2〉:〈表达式3>
条件运算符的运算规则为:先计算表达式1的值,若它的值为真(非0),则计算表达式2的值,并把它作为整个表达式的值;如果表达式1的值为假(0),则计算表达式3的值并把它作为整个表达式的值。
例如:
max=x>y?x:y
先判断x>y是否成立,若成立,返回x的值,否则返回y的值。
C语言中条件运算符的优先级高于赋值运算符,其结合方向为自右至左。
【例题】员工销售额判断
根据某员工的销售额计算销售提成,销售额小于等于1万,提成为5%,销售额大于1万,小于等于2万,提成为8%;售额大于2万,提成为10%。
分析:条件表达式只能返回一个逻辑表达式取值为真、假两种不同情况时的值,如果当“销售 额>20000” 这个表达式成立时,提成的值为“销售额*10%”但当销售额不大于20000时,还有两种情况,即大于1万,或小于等于1万。所以在“销售额>20000”这个表达式不成立时,再嵌入一个条件表达式,以判断销售额是大于1万,还是小于等于1万。
程序如下:
#include <stdio.h>
main()
{
int sales;
float tc;
printf("please input sales\n");
scanf ("%d",&sales);
tc=(sales>20000?sales*0.1:(sales>10000?sales*0.08:sales*0.05));
printf ("tc=%f\n",tc);
程序运行结果:
当输入30000时,输出为tc=3000
当输入15000时,输出为tc=1200
当输入5000时,输出为tc=250
点击加载更多评论>>