Online Compiler C

#include<stdio.h> int main() { int arr[5]; int i; int min; for(i=1;i<5;i++){ scanf("%d",&arr[i]); } min=arr[0]; for(i=1;i<5;i++){ if(arr[i]<min){ min=arr[i]; } } printf("%d\n",min); return 0; }
这段代码的目的是从用户输入的5个整数中找出最小值并输出。代码的基本思路是正确的,但存在一个关键问题。

- 数组索引从0开始,但你的第一个循环从i=1开始读取输入,跳过了arr[0],导致arr[0]未被赋值。同时,你又将min初始化为未赋值的arr[0],这会导致未定义行为。
- 循环条件i<5只读取了4个元素(索引1到4),而不是5个。你需要确保读取所有5个元素,并且正确初始化min。