急!!!!! 关于PASCAL

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:11:07
大家帮偶看看编译有什么问题
label 10;
var
a,b,c,d,e,f,g:integer;
begin
b:=9;
10:b:=b+1;
c:=b;
for a:=1 to 3 do
begin
d:=c+6;
e:=d div 10;
f:d-10*e;
g:=10*f+e;
end;
if g=c then writeln(c) else goto 10;
end.
原题:有一个两位数 加6后再把个位数字与十位数字互换得到一个新的两位数 这样加6后再互换共三次后 又得到了原来的两位数 求这样的两位数有哪几个?

你的程序可以改进
我的:
var i,j,k,m,n,a,bgint;{a为十位,b为各位}
begin
for i:=10 to 99 do begin
k:=i;
for j:=1 to 3 do begin
inc(k,6){k+6};
a:=k div 10;
b:=k mod 10;
k:=b*10+a;
end;
if k=i then writeln(i);
end;
end.
没运行过~~但这个应该不会错~~这种模拟很简单
还有~~fp不用加Programe **~~多此一举~~
现在都不推荐拥goto语句了~~少用为好~~

程序的最前面加上: program p1;
e:=d div 10;改为 e:=d mod 10;
f:d-10*e;改为 f:=d div 10 mod 10;
g:=10*f+e;改为 g:=d-10*f-e+10*e+f;
if g=c then writeln(c)else goto 10;改为两句:
if g=c then writeln(c);
if b<=99 then goto 10;