回 帖 发 新 帖 刷新版面

主题:好难的题阿!你们可以做出来吗

有一个公司的主管,相知道他所有员工中工资的中间值.试写一个pascal程序显示员工数及他们的年薪的中间值.需要输入的数据是输入员工的每人的年薪.员工数限定在500以内

回复列表 (共4个回复)

沙发

将所有员工的年薪加起来除以人数就行了

板凳

我想中间值指的是最靠近平均数的那个员工的工资吧,我是这样写的,还有,我让那老板在输入结束的时候输入一个“-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 楼

Begin
  read(a);s:=0;
  while a<>-1 do begin
    s:=(s+a)/2;
    read(a);
  end;
  writeln(s);
End.

4 楼

输入一大堆数, 排序.
如果它们有奇数个, 结果就是正中间的数. 
如果它们有偶数个, 结果就是正中间的两个数的平均值.

我来回复

您尚未登录,请登录后再回复。点此登录或注册