在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d", &n) int x, y; scanf("%d", &x); int max = x, min = x; for (int i = 0; i < n; i++) { scanf("%d", y) if (y > max) { max = y; } if (y < min) { min = y; } } int result = max - min; printf("%d", result); return 0; }
这段代码试图读取n个整数,然后找出其中的最大值和最小值,最后输出它们的差值。但代码中有几处语法错误和逻辑问题。

- 第5行的`scanf`语句末尾缺少分号,导致后续代码解析出错。
- 第7行将`x`和`y`声明在同一行,但`x`只被读取一次,而循环中应该读取多个数,这里变量使用混乱。
- 第13行的`scanf`语句缺少取地址符`&`,并且末尾也缺少分号,同时`if`语句的写法不正确。