- 问答
- 2013-07-24 08:52:56 @
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 条评论
-
Gary1999 LV 8 @ 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