主题:好难的题阿!你们可以做出来吗
123456——189
[专家分:0] 发布于 2006-04-15 10:28:00
有一个公司的主管,相知道他所有员工中工资的中间值.试写一个pascal程序显示员工数及他们的年薪的中间值.需要输入的数据是输入员工的每人的年薪.员工数限定在500以内
回复列表 (共4个回复)
沙发
wangsdong [专家分:21390] 发布于 2006-04-15 10:30:00
将所有员工的年薪加起来除以人数就行了
板凳
超级玛丽 [专家分:0] 发布于 2006-04-15 21:03:00
我想中间值指的是最靠近平均数的那个员工的工资吧,我是这样写的,还有,我让那老板在输入结束的时候输入一个“-1”,这不算违反规则吧?如果我上面说的两条都对,那我的程序如下
var m:array[1..500] of real;
i,j:integer;a,b,n,s,t:real;
begin
repeat
i:=i+1;
read(m[i]);
s:=s+m[i];
until m[i]=-1;
writeln('staff number:',i-1);
n:=(s+1)/(i-1);
b:=1000000;
for j:=1 to i-1 do
begin
a:=abs(m[j]-n);
if a<b then begin b:=a; t:=m[j]; end;
end;
writeln('middle number:',t:0:2);
end.
3 楼
dorremon1992 [专家分:870] 发布于 2006-04-18 16:26:00
Begin
read(a);s:=0;
while a<>-1 do begin
s:=(s+a)/2;
read(a);
end;
writeln(s);
End.
4 楼
maxumi [专家分:2200] 发布于 2006-04-19 16:03:00
输入一大堆数, 排序.
如果它们有奇数个, 结果就是正中间的数.
如果它们有偶数个, 结果就是正中间的两个数的平均值.
我来回复