PDA

View Full Version : Lam on giup do minh bai nay



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...

quangtq
20-08-2009, 07:57
1. Edit, cho vào thẻ code đi. Nhìn ngứa mắt quá.
2. Mình chưa hiểu bạn đếm cái gì. Nếu đếm số lần so sánh thì thế là đúng rồi mà.

mhf259
20-08-2009, 09:42
Bạn đang muốn hoán đổi vị trí phải không, mình có đoạn mã nhìn dễ hơn:
dem:=a[i];
a[i]:=a[j];
a[j]:=dem;