illzt 发表于 2013-4-14 15:39:09

跟着小甲鱼老师学习Delphi的连加发现一个错误

本帖最后由 illzt 于 2013-4-14 15:52 编辑

小甲鱼是首个数加上他定义的一个0的变量(每次+1)做末数-首数的差次
这样无论如何都是个数+1,个数+2,个数+3然后循环所以如果个数不是1或是其他就会出现错误.
连加应该是这样算的
Var
    i,l,c:integer;
begin
    l:=0;
    i:=0;
if (Edit1.text='') or (Edit2.text='') then
    messagebox(handle,'没错它会报错','报错',0)
else
begin
    i:=StrToInt(Edit1.Text);
    l:=StrToInt(Edit2.Text);
      if (l<0) then
      messagebox(handle,'没错它会报错','报错',0)
      else
      begin
      c:=(i+l)*(l-i+1)div 2;   //(首数+末数)×数的个数÷2
      Button1.Caption:=IntToStr(c);
    end;
end;
end;

页: [1]
查看完整版本: 跟着小甲鱼老师学习Delphi的连加发现一个错误