帮忙看看哪错了(pascal)(数学黑洞6174 已知:一个任意的四位正整数.将数字重新组合成一个最
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/27 06:01:32
帮忙看看哪错了(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
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
排序的语句是有问题的.
如果用冒泡法排序,可以这样:
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]
如果用冒泡法排序,可以这样:
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]
希望大神们帮忙看看哪错了;编写一个程序寻找一种特殊整数:一个 n 位的正整数等于其各位数字的n次方之和
用Pascal编写一程序,输入一个正整数N,将N分解成质因数幂的乘积形式(帮忙看一下我哪里错了)
pascal程序键盘输入一个多位自然数,然后将各数数字重新排列成一个仍由原来数字组成的位数不变的比原数大的最小数.
pascal输入一个n位的正整数,输出由这n个数字组成的最大正整数.
如果将一个四位正整数中各位数字的和与这个四位数字相加,等于2002,求这个四位数
已知一个四位正整数满足下列条件:1,若同时将其个位数字与百位数字、十位数字与千位数字的位置互换,则其数值增加5940;2
pascal高精度拆分整数 【问题描述】 输入一个正整数N(不超过一百位),如果N是偶数,则拆分N的各个数字相
VB程序设计随机产生一个四位数,将其各位上的数字安逆顺序重新组成一个正整数,由ms
如果将一个数位上没有重复数字的四位正整数中的各位数字之和与这个四位数相加等于2002 那么这个四位数是多少
PASCAL:如何将一个四位数的各位数字分解出来
0-9的数字组合,组合成3位、4位、5位、6位分别能有多少组数字(任意组合,不能重复)
Free Pascal问题 任意输入一个四位数,输出的结果是其各个数位上的数字之和