不是VIP会员,不能显示答案

题目解答

题目:
var
   n,i,temp,sum:integer;
   a :array[1..100] of integer;
begin 
 readln(n); 
 for i:=1 to n do 
  read(a[i]); 
 for i:=1 to n-1 do 
  if a[i]>a[i+1] then 
  begin  
   temp := a[i]; 
   a[i] := a[i+1];    
a[i+1] := temp; 
  end; 
 for i:=n downto 2 do 
  if a[i]<a[i-1] then 
begin  
  temp := a[i]; 
  a[i] := a[i-1];  
a[i-1] := temp;  
end; 
 sum := 0; 
 for i:=2 to n-1 do   
inc(sum,a[i]);  
writeln(sum div (n-2)); 
end. 
输入: 8 
40 70 50 70 20 40 10 30
输出:41
考点: 0
分析:
解答: 去除一个最大值和最小值后的平均值——取整,程序中类似双向冒泡排序执行了一个来回,将最大值和最小值放到了尾和首
评论:
老师: 0