如题
pascal 字符与数字之间连续的输入 输出 需要特别处理么?怎么处理呢,我一直106错误。好几天了,想不明白。是TYVJ上的奖学金问题
答案:3 悬赏:50 手机版
解决时间 2021-04-29 20:46
- 提问者网友:难遇难求
- 2021-04-29 03:22
最佳答案
- 五星知识达人网友:污到你湿
- 2021-04-29 04:21
这题我ac了
这是我的程序:
var h,temp,k,c,n,j,i,jj:longint;pjcj,pycj,lw,jxj:array[1..100]of longint;
mz:array[1..100]of string;
xsgb,xbxs:array[1..100]of boolean;
str1:string; 有的数组名称我用拼音,如:xsgb为学生干部;
这是判断:
procedure pd;
begin
if (lw[i]>=1) and (pjcj[i]>80) then jxj[i]:=jxj[i]+8000;
if (pycj[i]>80) and (pjcj[i]>85) then jxj[i]:=jxj[i]+4000;
if pjcj[i]>90 then jxj[i]:=jxj[i]+2000;
if (pjcj[i]>85) and (xbxs[i]) then jxj[i]:=jxj[i]+1000;
if (pycj[i]>80) and (xsgb[i]) then jxj[i]:=jxj[i]+850;
end;
这一块是读入
begin
readln(n);
for i:=1 to n do
begin
readln(str1); j:=1;
c:=length(str1);
while str1[j]in['a'..'z','A'..'Z'] do begin mz[i]:=mz[i]+str1[j]; j:=j+1; end; j:=j+1; jj:=1; 读入名字
while str1[j]in['0'..'9'] do begin pjcj[i]:=pjcj[i]*jj+ord(str1[j])-48; j:=j+1; jj:=jj*10; end; j:=j+1; jj:=1; 读入平均成绩;
while str1[j]in['0'..'9'] do begin pycj[i]:=pycj[i]*jj+ord(str1[j])-48; j:=j+1; jj:=jj*10; end; j:=j+1; 读入班级评议成绩
if str1[j]='Y' then xsgb[i]:=true else xsgb[i]:=false; j:=j+2; 是否为学生干部
if str1[j]='Y' then xbxs[i]:=true else xbxs[i]:=false; j:=j+2; 是否为西部学生
if c-j=1 then lw[i]:=10 else lw[i]:=ord(str1[j])-48; 论文数量
end;从字符中读入后,读入的是字符型要将str【i】转化成ord(str1[i])-48;
for i:=1 to n do pd;
k:=1; h:=0;
for j:=1 to n do if jxj[j]>jxj[k] then k:=j;
for i:=1 to n do h:=h+jxj[i];
writeln(mz[k]);
writeln(jxj[k]);
writeln(h);
end.
希望楼主采纳
全部回答
- 1楼网友:纵马山川剑自提
- 2021-04-29 05:55
必须每行都用一个readln;
- 2楼网友:平生事
- 2021-04-29 05:03
将你的程序段给我,我看看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯