#include<stdio.h>
int main()
{
float input_number ;
int hours,minutes,seconds;
printf("How many hours:");
scanf("%lf",&input_number);
hours=(int)input_number;
minutes=(int)((input_number-hours)*60);
seconds=((input_number-hours)*60-minutes)*60;
printf("%dhours%dminutes%dseconds",hours,minutes,seconds);
return 0;
}
为什么输入0.01显示的是35秒?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qfl_sdu 2021-10-13 13:48关注
scanf("%lf",&input_number);这里改成scanf("%f",&input_number);
float类型用%f,double类型用%lf1秒等于1/3600小时,36秒等36/36000=0.01小时
应该是计算过程中损失了精度本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
- ¥15 Java,消息推送配置
- ¥15 Java计划序号重编制功能,此功能会对所有序号重新排序,排序后不改变前后置关系。
- ¥15 关于哈夫曼树应用得到一些问题
- ¥15 使用sql server语句实现下面两个实验(需要代码和运行结果截图)
- ¥20 用web解决,要给我一个完整的网页,符合上述的要求
- ¥20 求个sql server代码和结果的图 两道题
- ¥15 银河麒麟操作系统无法使用U盘
- ¥100 寻找:光电二极管电路设计服务
- ¥15 YOLOv5改进后的结构图