#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;
}
scanf("%lf",&input_number);这里改成scanf("%f",&input_number);
float类型用%f,double类型用%lf
1秒等于1/3600小时,36秒等36/36000=0.01小时
应该是计算过程中损失了精度