回 帖 发 新 帖 刷新版面

主题:我是小学生,问一下这个题目的PASCAL程序

题目:输出一个加法算式,输出结果,比如说:输入:1256+1 输出:1257
注意:中间没有空格,整体就是一个字符串,请用字符串做,还有,做一个小学生的水平,不要太让人看不懂。(老师让我们用COPY和VAL函数做,但是编译时copy:=copy(sh,sw,t);这个语句过不去,请各位英雄指点指点)

回复列表 (共4个回复)

沙发

怎么没人啊

板凳

我星期五就要上课啊,高手在哪里啊

3 楼

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 楼

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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册