/ Vijos / 讨论 / 问答 /

谁拿了最多奖学金50分

var
p,b:integer;
s,lss,n,winner:string;
q,w,m,ls,l,y,j,zj,lsj:longint;
g,x:boolean;
begin
read(p);
zj:=0;
for q:=1 to p do begin
readln(s);
s[length(s)+1]:=' ';
for w:=1 to length(s)+1 do if (s[w]=' ') then begin
case b of
0:begin
n:=copy(s,1,w-1);
ls:=w;
end;
1:begin
lss:=copy(s,ls+1,w-ls-1);
val(lss,m);
ls:=w;
end;
2:begin
lss:=copy(s,ls+1,w-ls-1);
val(lss,y);
ls:=w;
end;
3:begin
if s[w-1]='Y'then g:=true
else g:=false;
ls:=w;
end;
4:begin
if s[w-1]='Y'then x:=true
else x:=false;
ls:=w;
end;
5:begin
lss:=copy(s,ls+1,w-ls-1);
val(lss,l);
end;
end;
b:=b+1;

end;
if (m>80)and(l>=1)then lsj:=lsj+8000;
if (m>85)and(y>80)then lsj:=lsj+4000;
if m>90 then lsj:=lsj+2000;
if (m>85)and(x=true)then lsj:=lsj+1000;
if (g=true)and(y>80)then lsj:=lsj+850;
if lsj>j then begin
j:=lsj;
winner:=n;
end;
zj:=zj+lsj;
b:=0;
lsj:=0;

end;
write(winner);
writeln;
write(j);
writeln;
write(zj);
end.
{求助}

2 条评论

  • @ 2013-07-25 00:28:05

    = =我是用记录的 AC
    type
    per=record
    nam:string[20];
    sco:integer;
    cla:integer;
    gan:boolean;
    xi:boolean;
    lun:boolean;
    all:integer;
    end;

    var
    i,j,k,l,max,maxer:integer;
    total:longint;
    s:string;
    list:array[1..100] of per;

    procedure fenshu(x:string; var y:integer);
    begin
    if length(x)=1 then y:=ord(x[1])-ord('0');
    if length(x)=2 then begin
    y:=(ord(x[1])-ord('0'))*10;
    y:=y+ord(x[2])-ord('0');
    end;
    if length(x)=3 then y:=100;
    end;

    begin
    readln(i);
    for j:=1 to i do begin
    readln(s);k:=1;
    while not (s[k]=' ') do inc(k);
    list[j].nam:=copy(s,1,k-1); inc(k); l:=k;
    while not (s[k]=' ') do inc(k);
    fenshu(copy(s,l,k-l),list[j].sco); inc(k); l:=k;
    while not (s[k]=' ') do inc(k);
    fenshu(copy(s,l,k-l),list[j].cla);
    if s[k+1]='Y' then list[j].gan:=true;
    if s[k+3]='Y' then list[j].xi:=true;
    if s[k+5]>'0' then list[j].lun:=true;
    end;

    for j:=1 to i do begin
    if (list[j].sco>80) and list[j].lun then list[j].all:=list[j].all+8000;
    if (list[j].sco>85) and (list[j].cla>80) then list[j].all:=list[j].all+4000;
    if (list[j].sco>90) then list[j].all:=list[j].all+2000;
    if (list[j].sco>85) and list[j].xi then list[j].all:=list[j].all+1000;
    if (list[j].cla>80) and list[j].gan then list[j].all:=list[j].all+850;
    if list[j].all>max then begin
    maxer:=j;max:=list[j].all;
    end;
    total:=total+list[j].all;
    end;
    writeln(list[maxer].nam);
    writeln(list[maxer].all);
    writeln(total);
    end.

  • @ 2013-07-24 09:02:19

    变量用途:
    p,人数
    w,q循环变量
    b,此空格之前是否有空格
    lss,临时征用的字符串
    ls,临时变量,存储所截取词左部空格位置
    m,模考成绩
    n,姓名
    winner:最多奖学金的人
    l:论文
    y:评议成绩
    j:最多奖学金
    zj:总奖学金
    lsj:该人的奖学金
    g:干部
    x:西部

  • 1