Trích:
so_0_lanh_lung
-Tìm giá trị lớn thứ hai và giá trị nhỏ thứ 2.
-Tìm và in ra số dương nhỏ nhất và số âm lớn nhất
-Tìm số chắn nhỏ nhất
-Tính trung bình cộng của các số âm.
|
Trích:
|
-Tìm giá trị lớn thứ hai và giá trị nhỏ thứ 2.
|
Cái đầu tiên có một số cách:
1.Sau khi bạn tìm số lớn nhất thì bỏ số đó đi và tìm số lớn nhất của dãy mới (tương tự với số nhỏ nhất.).
2.Sắp xếp dãy trước rồi tìm thấy ngay (cách này được đánh giá không hiệu quả).
3.Bạn tìm số lớn nhất ở vị trí nào đó giờ viết câu lệnh vẫn dạng ấy nhưng bỏ qua số lớn nhất đã tìm được.
Code:
if a[max]<a[i] and max <> maxold then max:=i;
Làm tương tự với số bé hơn..
Bạn cần thêm một biến sác nhận xem đã tìm được số chẵn nào chưa.
Code:
var
chan:boolean;
chan:=false;
for i:=1 to n do
if chan:=false then
if a[i] mod 2 = 0 then
begin
max:=i;
chan:=true;
end;
else
if a[i] mod 2 = 0 and a[max]<a[i] then max:=i;
Bạn làm tương tự với số dương và số âm.
Phần trung bình cộng số theo điều kiện.
Code:
s:=0;
soluongso:=0;
for i:=1 to n do if a[i] thỏa mãn điều kiện then
begin
s:=s+a[i];
inc(soluongso);
Lưu ý các code mình viết chỉ mang tính cấu trúc có thể chưa đúng chính tả.