Онлайн компилятор C

#include <stdio.h> int main() { int t,H,M,S; scanf("%d",&t); H=t/3600; int rem=t%3600; M=rem/60; S=rem&60; printf("H=%d\n",H); printf("M=%d\n",M); printf("S=%d\n",S); return 0 }
这段代码的目的是将输入的总秒数 `t` 转换为小时、分钟和秒,并分别输出。代码整体思路正确,但有一个语法错误和一个逻辑错误。

- 第12行 `return 0` 后面缺少分号 `;`,这是语法错误,会导致编译失败。
- 第10行 `S=rem&60;` 使用了按位与运算符 `&`,但这里应该使用取模运算符 `%` 来计算剩余的秒数。`rem&60` 的结果不是正确的秒数,因为按位与是对二进制位操作,而取模才是求余数。