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

#include <stdio.h> int main() { int N,max=9,min=0,curr,prev; scanf("%d\n",&N); for(int i=0;i<N;i++){ if(curr<=prev){ min=curr; max=prev; } printf("%d",max*min); } return 0; }
1) 这段代码试图读取N个整数,通过比较当前值和前一个值来更新min和max,最后输出max和min的乘积。但代码存在逻辑问题,无法正确找到最小值和最大值。

2) 提示1:注意变量curr和prev在第一次循环时未初始化,这会导致未定义行为。
提示2:考虑使用单独的变量来记录全局最小值和最大值,而不是在每次比较时重新赋值。