vijos题解吧 关注:6贴子:20
  • 2回复贴,共1

【题解】P1001 谁拿了最多奖学金

只看楼主收藏回复

#include<stdio.h>
int main(){
int i,j,n,qm,py,lw,prize,max=0;
long total=0;
char a[20],name[20],xb,gb;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%s %d %d %c %c %d",a,&qm,&py,&gb,&xb,&lw);
prize=0;
if((qm>80)&&(lw>0)) prize+=8000;
if((qm>85)&&(py>80)) prize+=4000;
if(qm>90) prize+=2000;
if((qm>85)&&(xb=='Y')) prize+=1000;
if((py>80)&&(gb=='Y')) prize+=850;
total+=prize;
if(prize>max){
max=prize;
for(j=0;j<20;j++) name[j]=a[j];
}
}
printf("%s\n%d\n%ld",name,max,total);
return 0;
}


1楼2009-08-16 19:37回复
    • 218.95.47.*
    有 pascal语言的不??


    2楼2010-04-10 18:32
    回复
      2025-06-07 00:03:11
      广告
      var
         n,best,i,all,max:longint;
         ch:char;
         a,b,sum,g:array[1..32767] of longint;
         e,f:string ;
         s:array[1..100] of string;
      begin
      read(n);
      for i:=1 to n do begin
          read(ch);
            while ch<>' ' do
             begin
               s[i]:=s[i]+ch;
               read(ch);
             end;
          readln(a[i],ch,b[i],ch,e[i],ch,f[i],ch,g[i]);
          if (a[i]>80) and (g[i]>=1) then sum[i]:=sum[i]+8000;
          if (a[i]>85) and (b[i]>80) then sum[i]:=sum[i]+4000;
          if (a[i]>90) then sum[i]:=sum[i]+2000;
          if (a[i]>85) and (f[i]='Y') then sum[i]:=sum[i]+1000;
          if (b[i]>80) and (e[i]='Y') then sum[i]:=sum[i]+850;
          all:=all+sum[i];
          if max<sum[i] then
           begin
             max:=sum[i];
             best:=i;
           end;
      end;
      writeln(s[best]);
      writeln(max);
      writeln(all);
      end.


      3楼2011-04-24 16:47
      回复