Online Compiler C

#include <stdio.h> long long absolute(int n) { if (n < 0) { return -(long long)n; } else { return n; } } int main() { int num; scanf("%d", &num); int res = absolute(num); printf("%d", res); return 0; }
这段代码定义了一个函数 `absolute`,用于计算整数的绝对值,然后在 `main` 函数中读取一个整数并输出其绝对值。整体逻辑是正确的,但存在一个类型不匹配的问题。

- 函数 `absolute` 的返回类型是 `long long`,但在 `main` 中,你将返回值赋给了 `int` 类型的变量 `res`。这可能导致大数值被截断,丢失精度。
- 另外,`printf` 使用 `%d` 来打印 `res`,但 `res` 是 `int` 类型,而函数返回的是 `long long`,这里也存在类型不一致的潜在风险。