c语言条件结构

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:58:06
#include<stdio.h>
void main()
{
double sal;
double rate;
printf("\n请输入基本工资");
scanf("%lf",&sal);
rate=(sal<=1000)?0:0.05;
sal=sal-(sal-1000)*rate;
printf("\n税后工资为%7.2f\n",sal);
}
我想知道,是不是rate=(sal<=1000)?0:0.05;语名如果小于1000的话
执行printf("\n税后工资为%7.2f\n",sal);这条语句
如果不小于1000的话
sal=sal-(sal-1000)*rate;
printf("\n税后工资为%7.2f\n",sal);
但是sal=sal-(sal-1000)*rate;语句明明在下面,为什么就不执行呢?

怎么不执行,我已经调试过了
rate=(sal<=1000)?0:0.05 条件运算符,是先判断条件,如果成立取:左边的数作为计算结果,如果不成立就取:右边的数作为就是结果
例如你输入800,800<1000,则rate=0;计算sal=sal-(sal-1000)*rate后sal不变;当输入3000,则rate=0.05,计算sal=sal-(sal-1000)*rate;后sal变为2900