我想从用户那里获得距离和速度并返回时间。 这是我做的代码:
int main()
{
int distance, speed;
scanf("%d,%d", &distance, &speed);
printf("%d\n", distance / speed);
printf("%d hours and %d minutes", (distance/speed), (distance / speed)%60);
}
对于值:
10 10
我收到0
作为输出。
答案 0 :(得分:3)
问题在于,您没有检查scanf()
的返回值以确保其成功。
按属性,scanf()
提供的格式字符串应与输入完全匹配,否则,由于匹配失败,接收参数将无法获得预期值。
使用类似
的格式字符串scanf("%d,%d", &distance, &speed);
输入
10 10
不是正确的,您需要输入
10,10
匹配格式字符串中的,
。
否则,您也可以从格式字符串中删除,
,并以空格分隔格式提供输入。
[编辑]:
要强制执行浮点除法,请将您的陈述更改为
printf("%f\n", ( (float)distance / speed ) );
printf("%f hours and %d minutes", ( (float)distance / speed ), (distance / speed)%60);
答案 1 :(得分:0)
您需要输入10,10
,因为这是scanf()
所需要的。
然后你的计算当然不正确。 1}}和1
的小时和分钟都会得到。