Viết chương trình nhập vào một mảng số nguyên, tìm phần tử nhỏ nhất rồi hoán vị nó với p tử thứ nhất (pascal)
2 câu trả lời
Cách 1:
uses crt;
var a:array[1..1000000] of longint;
n,i,max,min,t:longint;
begin
clrscr;
write('Nhap so luong phan tu: '); readln(n);
for i:=1 to n do
begin
write('Nhap so thu ',i,': '); readln(a[i]);
end;
max:=a[1];min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('Max: ',max);
writeln('Min: ',min);
for i:=1 to n do
begin
t:=max;
max:=min;
min:=t;
end;
writeln('Max sau khi hoan vi: ',max);
writeln('Min sau khi hoan vi: ',min);
readln;
end.
Cách 2:
uses crt;
var a:array[1..1000000] of longint;
n,i,max,min:longint;
begin
clrscr;
write('Nhap so luong phan tu: '); readln(n);
for i:=1 to n do
begin
write('Nhap so thu ',i,': '); readln(a[i]);
end;
max:=a[1];min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('Max: ',max);
writeln('Min: ',min);
writeln('Max sau khi hoan vi: ',min);
writeln('Min sau khi hoan vi: ',max);
readln;
end.
*Nó khác nhau chỗ là cách 1 phải làm bước hoán vị còn cách hai là đảo chỗ thôi, ghi là max mà giá trị in ra là min, ghi min mà giá trị in ra là max.
program MinAm;
uses crt;
var A:array[1..500] of integer;
n,i,min,tam:integer;
begin
clrscr;
tam:=0;
write('Nhap n: '); read(n);
for i:=1 to n do
begin
write('Nhap phan tu thu ',i,': ');
readln(A[i]);
end;
min:=A[1];
for i:=2 to n do
if min>A[i] then min:=A[i];
tam:=min; min:=A[1]; A[1]:=tam;
writeln('Min: ',min);
writeln('A[1]: ',A[1]);
readln
end.
Hai câu lệnh mình in đậm là dùng để kiểm tra xem việc tìm phần tử nhỏ nhất, sau đó hoán vị nó với phần tử thứ nhất có đúng hay không á :D