Informatică, întrebare adresată de ZOUKYE, 9 ani în urmă

Scrieti un program care sa determine cel mai mare si cel mai mic numar care se pot obtine inserand cifra c in numarul n.

Răspunsuri la întrebare

Răspuns de express
1
program nr3;
var v,a,b:array[1..1001] of byte;
    c:byte;
    i,j,n:integer;
    ch:char;
    f,g:text;
begin
assign(f,'nr3.in');
reset(f);
assign(g,'nr3.out');
rewrite(g);
i:=0;
while not eof(f) do begin
read(f,ch);
if (ord(ch)>=ord('0'))and(ord(ch)<=ord('9')) then begin
                   i:=i+1;
                   v[i]:=ord(ch)-ord('0');  end;
if (ch=' ') then begin read(f,ch);
                       c:=ord(ch)-ord('0');
                 end;
                    end;
n:=i;
if c=0 then begin for i:=1 to n do write(g,v[i]); write(g,c);writeln(g);
                write(g,v[1]);write(g,c); for i:=2 to n do write(g,v[i]);end
else begin
if (v[1]<c) then begin write(g,c); for j:=1 to n do write(g,v[j]);
  writeln(g);
i:=1;
while((v[i]<c)and(i<n)) do
i:=i+1;
if i=n then begin for j:=1 to n do write(g,v[j]); write(g,c) end
else begin
for j:=1 to i-1 do write(g,v[j]);
write(g,c);
for j:=i to n do write(g,v[j]);
end end
else begin
i:=1;
while ((v[i]>=c)and(i<n)) do
i:=i+1;
for j:=1 to i-1 do write(g,v[j]);
write(g,c);
for j:=i to n do write(g,v[j]);
writeln(g);
i:=1;
while((v[i]<=c)and(i<n)) do
i:=i+1;
for j:=1 to i-1 do write(g,v[j]);
write(g,c);
for j:=i to n do write(g,v[j]);
end;end;
close(f);
close(g);
end.

Alte întrebări interesante