为什么会出现读取无效数据

img


为什么会显示正在读取无效数据还有就是有更简单的方法实现在一个循环里实现录入,求和,去掉最大与最小吗

img


简单些是直接求和,再减去最大值和最小值。下面示例没有判断输入范围。你加上。


int sum=0,max=0,min=100;
for(int i=0;i<10;i++)
{
    scanf("%d",&arr[i]);
    if(arr[i]<min)min=arr[i];
    if(arr[i]>max)max=arr[i];
    sum+=arr[i];
}
sum-=min+max; //最终从数组的和中减掉最大值和最小值。

应该是i越界了,看这样子应该是i等于-1了。你第一个输入的值就小于10吧?if判断中会i--,使得i成为-1,接着你又arr[i]>=max