今天编程时有如下代码:
#include"stdio.h"int main(void) {double profit;double bonus;printf("请输入本月利润\n");scanf("%f",&profit);//错误:此行profit是double类型,格式符为%f,当输入8时,profit的值为0if(profit<=10.0){bonus = profit*0.1;}else if(profit>10.0&&profit<=20.0){bonus = 10*0.1 + (profit-10)*0.75;}else if(profit>20.0&&profit<=40.0){bonus = 10*0.1+10*0.75+(profit-20)*0.05;}printf("您本月的奖金为:%.5f千\n",10*bonus);return 0; }
printf("请输入本月利润\n");
执行到: scanf("%f",&profit);时,由于profit是double类型,其占位符因该是%lf,而我写成了float的占位符%f,当键盘上输入8后,profit的值是0,故最后输出也是0。
有明白两者原因的大佬请评论区解答一下。