Trang chủ » Diễn Đàn » Lập trình và Phát triển Web » CLB Thuật toán » Giúp em gấp chương trình pascal này với myas anh chị ơi!
Chủ đề đã bị khóa, bạn không thể xóa, sửa hay trả lời trong chủ đề này!
|
|
|---|
|
0
Anh chị nào viết giùm em chương trình pascal gấp lắm (gửi qua suxedung@gmail.com giùm em) sắp xếp mảng mọt chiều tăng dần bằng thuật toán nổi bọt và chộn trực tiếp. em viết thế này mà sao không ra, em chẳng biết nó sai chỗ nao:
- chọn trực tiếp: uses crt; type kieumang=array[1..50] of integer; var a:kieumang; n,j,i,tam:integer; begin write('hay nhap so luong phan tu cua mang: ');readln(n); for i:=1 to n do begin write('nhap a[',i,']:= ');readln(a[i]); end; writeln; write('mang ban vua nhap:'); for i:=1 to n do write(a[i]); writeln; for i:=1 to n do a[min]:=a[i]; for j:=i+1 to n do if a[j]<a[j-1] then begin a[min]:=a[j]; tam:=a[i]; a[i]:=a[min]; a[min]:=tam; end; write('mang sau khi sap xep la:'); writeln; for i:=1 to n do write(a[i]); readln; end. em đã thử nhiều các rồi nhưng chương trình chạy sáp xếp sai. |
|
|
|
0
xem lại vòng lặp đi e :d
|
|
|
|
0
vd với dãy bất kỳ 496253 ( em xem bài bắt xếp tăng hay giảm thì đổi chỗ nhé ):
i=1 m=i =1; for j:=i+1 to n do if K[j] > K[m] then m:=j; if m <> i then Begin tg:=K[m]; K[m]:=K[i]; K[i]:=tg; End; đoạn for này tìm số lớn nhất trong mảng --> m=2 (vì 9 lớn nhất); đổi chỗ k[m] và k[i] nghía là đổi chỗ 9 và 4 cho nhau Write ( "i= ", i , " " ); --> màn hình hiện i= for j:=1 to n do Write ( K[i], " " ); Writeln; k[i]=k[1] =9 (sau khi đổi chỗ) --> hiện ra thêm 6 sô 9 .. tiếp tục như vậy |
