接受用户输入10个选手的得分(0-10分),然后去掉一个最高分和一个最低分, 求出某选手的最后得分
来源:百度知道 编辑:UC知道 时间:2024/06/21 12:10:15
var a:array[1..10]of longint;
b,i,j,sum:longint;r:real;
begin
for i:=1 to 10 do read(a[i]);readln;(输入)
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i]>a[j] then begin b:=a[i];a[i]:=a[j];a[j]:=b;end;
(对输入的10个数据从小到大进行冒泡排序)
for i:=2 to 9 do
begin
sum:=sum+a[i];
end;(把第2位到第9位的数字相加,就是不加最大和最小的)
r:=sum/8;(除以去掉最大和最小后的数字个数8)
writeln(r:0:0);(因为是8个数字,所以除任何一个整数都是有限的小数位,所以输出整数和小数的所有位)
end.
其实我觉得不用什么排序就能做:
progeam ooxx;
type arr=array[1..10] of integer;
var min,max,i:integer;
sum:integer; {总数}
begin
for i:=1 to 10 do
read(a[i]);
min:=a[1];
max:=a[1];
sum:=a[1];
for i;=2 to 10 do
begin
sum:=a[i]+sum;
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('output:',(sum-min-max) div 8);
end.
不知道能不能通过编译啊,我很粗心的