>>289
max = max + a[i];a[i] = max - a[i];max = max - a[i];
と
min = min + a[i];a[i] = min - a[i];min = min - a[i];
でa[i]の値を変えているから
最大値最小値の求め方が異常だ