主题:我是小学生,问一下这个题目的PASCAL程序
wangminrui0804
[专家分:30] 发布于 2009-12-02 19:53:00
题目:输出一个加法算式,输出结果,比如说:输入:1256+1 输出:1257
注意:中间没有空格,整体就是一个字符串,请用字符串做,还有,做一个小学生的水平,不要太让人看不懂。(老师让我们用COPY和VAL函数做,但是编译时copy:=copy(sh,sw,t);这个语句过不去,请各位英雄指点指点)
回复列表 (共4个回复)
3 楼
小田甜 [专家分:3910] 发布于 2009-12-03 13:15:00
program sum;
var
s:string;
a,b,i:integer;
begin
readln(s); a:=0;b:=0;
for i:=1 to length(s) do
case s[i] of
'+':begin a:=a+b; b:=0; end;
'0'..'9':b:=b*10+(ord(s[i])-48);
end;
a:=a+b;
writeln(a);
readln;
end.
4 楼
小田甜 [专家分:3910] 发布于 2009-12-03 13:21:00
copy返回一个字符串类型,不能把它赋值给copy。
program sum;
var
s,t:string;
a,b,code:integer;
begin
readln(s); a:=0; s:=s+'+';
while s<>'' do begin
t:=copy(s,1,pos('+',s)-1);
val(t,b,code);
a:=a+b;
s:=copy(s,pos('+',s)+1,length(s)-pos('+',s));
end;
writeln(a);
readln;
end.
我来回复