|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
声明float,打印出来就不是整数,用double就能
不太明白,请大神通俗点告诉我,感谢
- #include <stdio.h>
- main()
- {
- float km,n1,n2,n;
- int time;
- scanf("%lf %d",&km,&time);
-
- if (km<=3){
- n1 = 10;
- }
- else if (km<=10){
- n1 = 10 + (km - 3)*2.0;
- }
- else{
- n1 = 10 + (km - 3)*2.0+(km - 10)*3.0;
- }
- n2 = time/5*2;
- n = n1 + n2;
- printf("%.0f",n);
-
-
-
-
-
- return 0;
- }
复制代码
两个问题
1.第7行%lf是double类型,float类型用%f
2.第16行, n1 = 10 + (km - 3)*2.0+(km - 10)*3.0;已经超过10KM了, 3到10公里这部分价钱是7*2=14元,
这部分要改成 n1 = 10 + 14+(km - 10)*3.0;
代码附后:
#include <stdio.h>
main()
{
float km,n1,n2,n;
int time;
scanf("%f %d",&km,&time);
if (km<=3){
n1 = 10;
}
else if (km<=10){
n1 = 10 + (km - 3)*2.0;
}
else{
n1 = 10 + 14+(km - 10)*3.0;
}
n2 = time/5*2;
n = n1 + n2;
printf("%.0f",n);
return 0;
}
|
|