giagi
20-08-2009, 00:38
program traodoi;
uses crt;
const nmax=250;
var n,i,j,y,t,dem:integer;
a:array[1..nmax] of integer;
begin
clrscr;
randomize;
write('nhap n= ');
readln(n);
for i:=1 to n do a[i]:=random(300)-random(300);
for i:=1 to n do write(a[i]:5);
writeln;
dem:=0;
for j:=n downto 2 do
for i:=1 to j-1 do
if a[i]>a[i+1] then
begin
dem:=dem+1;
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
writeln('day so dc sap xep;');
for i:=1 to n do
write(a[i]:7);
writeln('so lan sdem',dem);
writeln;
readln;
end.
************************************************** *****************************
Các bạn đã xem 1 đoạn mã trên;
Vấn đề để là làm sao để có giá trị biến "dem" la đúng khi có sự trao đổi các số với nhau. Xin các bạn chỉ giáo ! cám ơn...
uses crt;
const nmax=250;
var n,i,j,y,t,dem:integer;
a:array[1..nmax] of integer;
begin
clrscr;
randomize;
write('nhap n= ');
readln(n);
for i:=1 to n do a[i]:=random(300)-random(300);
for i:=1 to n do write(a[i]:5);
writeln;
dem:=0;
for j:=n downto 2 do
for i:=1 to j-1 do
if a[i]>a[i+1] then
begin
dem:=dem+1;
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
writeln('day so dc sap xep;');
for i:=1 to n do
write(a[i]:7);
writeln('so lan sdem',dem);
writeln;
readln;
end.
************************************************** *****************************
Các bạn đã xem 1 đoạn mã trên;
Vấn đề để là làm sao để có giá trị biến "dem" la đúng khi có sự trao đổi các số với nhau. Xin các bạn chỉ giáo ! cám ơn...