请问错在哪里
某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:
1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;
2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;
3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;
4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;
5) 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;
只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。
现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。
输入格式
输入的第一行是一个整数N(1 <= N <= 100),表示学生的总数。接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。每两个相邻数据项之间用一个空格分隔。
输出格式
输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。第三行是这N个学生获得的奖学金的总数。
Program jiax;
var xinm,ganbu,sibu,maxxinm:string;
qimo,banji,lunwen:integer;
count,max,i,jim,b,code:integer;
temp,tems,temo:string;
temt:integer;
begin
readln(b);
for i:=1 to b do
begin
max:=0;
jim:=0;
xinm:='';
qimo:=0;
banji:=0;
ganbu:='';
sibu:='';
lunwen:=0;
{readln(xinm,qimo,banji,ganbu,sibu,lunwen);}
readln(temp);
temt:=pos(' ',temp);
xinm:=copy(temp,1,temt);
delete(temp,1,temt);
temt:=pos(' ',temp);
temo:=copy(temp,1,temt-1);
val(temo,qimo,code);
delete(temp,1,temt);
temt:=pos(' ',temp);
temo:=copy(temp,1,temt-1);
val(temo,banji,code);
delete(temp,1,temt);
temt:=pos(' ',temp);
ganbu:=(copy(temp,1,temt-1));
delete(temp,1,temt);
temt:=pos(' ',temp);
sibu:=copy(temp,1,temt-1);
delete(temp,1,temt);
temt:=pos(' ',temp);
temo:=copy(temp,1,temt+1);
val(temo,lunwen,code);
{Yuanshi}
if (qimo > 80) and (lunwen >= 1) then jim:=jim+8000;
{wusi}
if (qimo > 85) and (banji > 80) then jim:=jim+4000;
{chenji}
if (qimo > 90) then jim:=jim+2000;
{sibu}
if (qimo > 85) and (sibu='Y') then jim:=jim+1000;
{banji}
if (banji> 80) and (ganbu='Y') then jim:=jim+850;
{huizing}
if jim>max then
begin
max:=jim;
maxxinm:=xinm;
end;
count:=count+jim;
end;
writeln(maxxinm);
writeln(max);
writeln(count);
end.
参考资料:去年自己做的!
Freepascal编程问题
i,j,n:longint;begin readln(n);\/\/你要9就输9 for i:=1 to n do begin for j:=1 to i do write(' ');for j:=1 to i do write('*');writeln;end;end.羡慕你们,我们的程序...后天就是省选
懂free pascal语句的朋友进!,我有问题
第一题(我把两个数分两行输出了,你如果要输一行,可以自己改)var a,b,c:longint;begin readln(a,b);c:=a;c:=c*100+b;writeln(c);b:=b*1000;b:=b+a;writeln(b);end.第二题 var a:longint;begin readln(a);a:=a mod 10000;a:=a div 10;writeln(a);end.第三题 var a...
free pascal编程问题
2.在函数中,函数的返回值可以作为一个变量来处理。比如:function a : longint;begin a:=12;while a>4 do begin {...} end;end;这个例子在Turbo Pascal中,a>4会被认为是函数的递归调用,但是在Free Pascal中会认为a只是一个变量。如果想在Free Pascal中实现递归调用,就要写成下面的形式:fu...
free pascal编程,帮忙解释一下,假如能提示更简便的方法就给三十分...
第四个:if语句:这个if语句的判断条件1111*j,因为这个新产生的四位相同数数比模拟的平方数小就做 第五个:if语句:这是判断模拟的平方数减去四位相同数后是否还是一个完全平方数(sqr函数是求平方的,sqrt函数是求平方根的)如果让我写,我可能会写过程,这样会简单一点。看在我拼命理解你给的程...
问几个关于free pascal的题目,急急急!(完成几道是几道)
1、输出如下图形。2、编写一程序,验证角谷猜想。所谓的角谷猜想是:"对于任意大于1的自然数n,若n为奇数,则将n变为3*n+1,否则将n变为n的一半。经过若干次这样的变换,一定会使n变为1。"3、有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个...
请用Free Pascal解答以下3道题。请答案简单一点,我是一个小菜鸟。_百度...
先打一下第二题:var a,b,c,m:longint;begin a:=36 div 3;b:=(48+a) div 3;c:=(64+a+b) div 3;writeln(a:4,48+a:4,64+a:4);writeln(a+b:4,b:4,64+a+b:4);writeln(a+b+c:4,b+c:4,c:4);end.
Free pascal练习题大全
1、倒油问题:看懂,并完成程序。有10升油在10的容器中,另有两个7升和3升的空容器,现要求用这三个容器倒油,使得最后在10升和7升的容器中各有5升。2、书本的P.250-251页的迷宫问题:看懂,完成程序并调试 3、细胞问题:一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为细胞数字...
FREE PASCAL编程问题
program Project1;var a:array[0..10000,0..10000]of integer;i,j,k,l,m,n:integer;begin k:=0;repeat k:=k+1;case k of 1:a[1,1]:=k;2:a[1,2]:=k;3:a[2,1]:=k;4:a[3,1]:=k;5:a[2,2]:=k;6:a[1,3]:=k;7:a[1,4]:=k;8:a[2,3]:=k;9:a[3,2...
帮忙!两道Free Pascal问题
1 program project1;var p,i,j,x:real;begin p:=1;i:=0;j:=1;writeln('x=?');readln(x);while (abs(p)>=1\/1000000) do begin i:=i+p;p:=(-1)*p*x*x\/(j*(j+1));j:=j+2;end;writeln('i:',i);readln;end.2 program project2;var i:string;j,p,q:integer;begin...
free pascal的问题 (用while语句解答)
n:=1; tot:=1;while n<=9 do begin tot:=(tot+1)*2;n:=n+1;end;writeln(tot);end.program ex_2;var i,j,k:integer;begin for i:=2 to 1000 do begin write(i,'=');k:=i; j:=2;{j 用来试探其因子,1000以内很小,枚举即可} while k<>1 do if k mod j=0 then ...