?疑惑 ?SOS

cat8162 2003-10-15 04:14:07
function maxyueshu(var num1,num2:integer):integer;forward;
begin
if num2=0 then
result:=num1
else
45行: result:=maxyueshu(num2,num2 mod num1);

[Error] Unit1.pas(45): Types of actual and formal var parameters must be identical
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

这是一公约数算法,怎么不能在编译?
...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat8162 2003-10-16
  • 打赏
  • 举报
回复
谢谢!我已经解决了,我试一下核桃的,45522341 大哥的好象有问题。
function maxyueshu(var num1,num2:integer):integer;forward;
function maxyueshu(var num1,num2:integer):integer;
begin
num2:=num2 mod num1;
if num2=0 then
begin result:=num1;
end else
result:=maxyueshu(num2,num1);
end;
ok!
求两个任意长整数的乘积算法;
47522341 2003-10-16
  • 打赏
  • 举报
回复
function Tform1.maxyueshu(var num1,num2:integer):integer;stdcall;
begin
if num2 = 0 then
result :=num1
else
num1 := num2;
num2 := trunc(num1/num2);
result:=maxyueshu(num1,num2);
end;
47522341 2003-10-16
  • 打赏
  • 举报
回复
楼主这个算法好像不太对;
hthunter 2003-10-15
  • 打赏
  • 举报
回复
并且你这个算法好像有问题,最终的结果并不是两个数的最大公约数
hthunter 2003-10-15
  • 打赏
  • 举报
回复
把函数声明中的var去掉,因为使用了var的话,则表示参数num2必须是已经声明的一个变量,而不能是类似于(num2 mod num1)这样的一个计算值或者常量
hmzgz81 2003-10-15
  • 打赏
  • 举报
回复
怎么不能在编译


什么意思?

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧