帮忙看看哪错了(pascal)(数学黑洞6174 已知:一个任意的四位正整数.将数字重新组合成一个最

问题描述:

帮忙看看哪错了(pascal)(数学黑洞6174 已知:一个任意的四位正整数.将数字重新组合成一个最
var
a :array[1..4]of integer;
max4,max3,max2,max1,m,i,j,k:integer;
flag:boolean;
cha:longint;
begin
read(a[1],a[2],a[3],a[4]);
flag:=true;
m:=0;
while cha 6174 do
begin
m:=m+1;
for i:=1 to 4 do
begin
max4:=a[i];
if a[i]>max4
then
begin
max4:=a[i];
flag:=false;
end;
end;
if flag
then
begin
for j:=1 to 3 do
begin
max3:=a[j];
if a[j]>max3
then
begin
max3:=a[j];
flag:=false;
end;
end;
end;
if flag
then
begin
for k:=1 to 2 do
begin
read(a[k]);
max2:=a[k];
if a[k]>max2
then
begin
max2:=a[k];
flag:=false;
end;
end;
end;
if flag
then a[i]:=max1;
cha:=max4*1000+max3*100+max2*10+max1-max1*1000-max2*100-max3*10-max4;
cha:=a[1]*1000+a[2]*100+a[3]*10+a[4];
end;
if m
1个回答 分类:综合 2014-10-20

问题解答:

我来补答
排序的语句是有问题的.
如果用冒泡法排序,可以这样:
for i:=1 to 3 do
for j:=i+1 to 4 do
begin
if a[i]
再问: 这是改后的答案,运行后显示错误201,请问这是怎么回事, O(∩_∩)O谢谢!
再答: 下面这个程序在TurboPascal7.0下成功运行,供参考: var s,t:string; a:array[1..4] of integer; i,j,k,m,n,aMax,aMin:integer; begin m:=0; writeln('*** 6174 Math Blackhole Calculation ***'); write('input a 4 digits integer:'); readln(s); writeln('your input is:',s); t:=s; while s'6174' do begin m:=m+1; writeln; writeln('----------------- loop ',m,' ------------------'); for i:=1 to 4 do val(s[i],a[i],j); writeln('before sorting, a[1]=',a[1],' a[2]=',a[2],' a[3]=',a[3],' a[4]=',a[4]); for i:=1 to 3 do for j:=i+1 to 4 do begin if a[i]
 
 
展开全文阅读
剩余:2000
上一页:为什么只选B
下一页:第8题练习