回 帖 发 新 帖 刷新版面

主题:帮忙找找这道题有什么错误,加分!!!

program mi;
  var x,y:integer;
  function fang(n,m:integer):longint;
   var i,k:integer;
    begin
     if n<>0 then
      begin
       if m=0 then fang:=1 else
       if m=1 then fang:=n else
        begin
         k:=n;
         for i:=2 to m do
         k:=k*n;
         fang:=k;
        end;
      end else
     writeln('input error!');
    end;
   begin
   writeln('input x= ,y=');
   readln(x,y);
   writeln(fang(x,y));
   end.
这是一道求x的y次方的题

回复列表 (共1个回复)

沙发

在第六行[quote]if n<>0 then[/quote]前加入:
if (n=0) and (m<>0) then fang:=0 else
将第16行及17行的[quote]      end else
     writeln('input error!');[/quote]
改为:
end else begin
  writeln('Input Error!');
  halt;
end;
可以避免在输入错误时出现得数。
其它的没有错误,你是不是数据太大了超界?

我来回复

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