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

#include <stdio.h> int main(){ int n,max,min,curr; scanf("%d",&n); scanf("%d",&curr); max=curr; min=curr; for(int i=1;i<n;i++){ scanf("%d",&curr); if(curr>max){ max=curr; }if(curr<min){ min=curr; } } printf("%d\n",max*min); return 0; }
1) 这段代码首先读取一个整数 n,表示接下来要输入的数字个数。然后读取第一个数字,将其同时设为当前最大值和最小值。接着通过循环读取剩下的 n-1 个数字,在读取过程中动态更新最大值和最小值。最后输出最大值和最小值的乘积。

2) 提示:注意当 n 为 1 时,循环不会执行,最大值和最小值都是第一个数字,乘积就是该数字的平方。另外,代码中两个 if 语句是独立的,没有使用 else-if 结构,但逻辑依然正确,因为一个数字不可能同时大于最大值又小于最小值。