C语言if语句问题

2024-12-21 11:13:10
推荐回答(3个)
回答1:

格式控制符有问题,%f是float的格式控制符,%d是int的格式控制符,double的格式控制符是%lf,你改成int可以运行是因为你的格式控制符是float的,int型可以向float转换,而double类型的变量不能向float转换,所以会出错。转换规则:只能窄域向宽域转换,反过来则不行

回答2:

int main(int argc, char* argv[])
{
double n,cost;
scanf("%lf",&n);
printf("%f\n",n);
if(n>500) cost=0.15;
else if(n>300.0&&n<500.0) cost=0.10;
else if(n>100.0&&n<300.0) cost=0.075;
else if(n>50.0&&n<100.0) cost=0.05;
else cost=0;

printf("%f\n",cost);
return 0;
}

将%f 改为%lf 因为你输入的是双精度的数

回答3:

神贴-_-||,具体点啊!