看看我的pascal程序哪里出了错

来源:百度知道 编辑:UC知道 时间:2024/06/25 03:57:57
program shuxue10;
var
n,m:integer;
begin
writeln('input the n');
readln(n);
repeat
if n mod 2=0 then
begin
while n mod 2=0 do;
begin
n:= n div 2;
end;
else n:=3n+13;
m:=1;
m:=m+1;
end;
wrireln('h='n);
until m:=257;
end.
检测说14行语句错,到底哪里错了?
一楼说的3*n也不行。

else n:=3n+13; 电脑可不知道3n是乘的意思
改为
else n:=3*n+13;

13:end(没有;)
PS:一楼的也对

else n:=3n+13; 电脑可不知道3n是乘的意思
改为
else n:=3*n+13;

把 else 前面的 分号 去掉 · 就可以了

程序修改如下:
program shuxue10;
var
n,m:integer;
begin
writeln('input the n');
readln(n);
repeat
if n mod 2=0 then
while n mod 2=0 do
begin
n:= n div 2;
end
else n:=3*n+13;
m:=m+1;
until m=257;
writeln('h=',n);
end.

while n mod 2=0 do; 不可要分号。
until m:=257; 不可要冒号。

else 不可匹配WHILE语句。