为什么不将min
与*(arr+i)
进行比较?
如果此代码中的语句未被执行
#include <stdio.h>
int main()
{
int i, min;
int arr[5];
for (i = 0; i <= 4; i++)
scanf("%d", &arr[i]);
min = *(arr);
for (i = 1; i <= 4; i++)
{
if ( min < *(arr + i) )
{
printf("min for %d is %d", i, min);
min = *(arr + i);
}
}
printf("%d\n", min);
return 0;
}
答案 0 :(得分:2)
代码正在执行,问题是您的情况有误:
min=*(arr);
for(i=1;i<=4;i++)
{
if ( min > *(arr+i) ) // Changed < into >
{
printf("min for %d is %d",i,min);
min = *(arr+i);
}
}
您首先将第一个元素作为最小元素。稍后,对于每个元素,您需要检查当前最小值是否大于当前值。如果是这种情况,请更新。