在线编译器 C

#include <stdio.h> int main() { unsigned int t, H, M, S; scanf("%u", &t); H = t / 3600; M = (t % 3600) / 60; S = t - H * 3600 - M * 60; printf("H=%u\n M=%u\n S=%u\n",H,M,S); }
这段代码读取一个无符号整数t(代表总秒数),然后将其转换为小时、分钟和秒,并输出。计算逻辑是正确的:小时数通过整除3600得到,分钟数通过取余3600后再整除60得到,秒数通过减去已计算的小时和分钟对应的秒数得到。

- 输出格式中,每个变量前有一个空格(如" M=%u"),这可能导致输出结果与预期格式不一致。检查题目要求的输出格式是否允许或需要这些空格。
- 变量t的类型是unsigned int,但scanf使用"%u"是合适的。不过如果输入值很大,注意unsigned int的范围(通常最大4294967295),确保不会溢出。