pascal程序键盘输入一个多位自然数,然后将各数数字重新排列成一个仍由原来数字组成的位数不变的比原数大的最小数.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 03:36:11
pascal程序键盘输入一个多位自然数,然后将各数数字重新排列成一个仍由原来数字组成的位数不变的比原数大的最小数.
pascal程序
键盘输入一个多位自然数,然后将各数数字重新排列成一个仍由原来数字组成的位数不变的比原数大的最小数.
pascal程序键盘输入一个多位自然数,然后将各数数字重新排列成一个仍由原来数字组成的位数不变的比原数大的最小数.
program zaoshu;
var
a:array[1..9] of integer; //存放自然数按位分解的各位数
b:array[1..10000] of longint; //存放位置调整后的每个数
c,sum:longint; //自然数
i,j,k,n:integer; //i,j,n为循环变量;k为找到的大数的个数
l,m,code,temp:integer; //l为串长;m位某位数字
t:longint; // t、temp为中间变量
st,st1:string; //st为自然数对应的串;st1为串中单个字符
find:boolean;
begin
readln(c);
str(c,st);
while st[1]=' ' do st:=copy(st,2,length(st)-1);
l:=length(st);
for i:=1 to l do begin //将自然数分解到数组a中
st1:=copy(st,i,1);
val(st1,m,code);
a[i]:=m;
end;
k:=1; // 找相对大的数,并将找到的数放入数组b中
//改用冒泡排序,且从末位往高位计算
for i:=l downto 2 do
for j:=l downto 2 do begin
if a[j-1]