Viết chương trình nhập vào mảng 1 chiều các số nguyên gồm N số(N<300).Tính a.Tổng các số chia hết cho 4 b.TB các số chia hết cho 2 và 5 c.Đếm các số < 0 d.Sắp xếp mảng vừa nhập theo thứ tự tăng dần Giúp mik vs ạ

2 câu trả lời

uses crt;
var i,j,n,t,tam,s,s2,d:integer;
a:array[1..100] of integer;
begin
clrscr;
write('nhap so ptu:');readln(n);
s:=0;s2:=0;d:=0;t:=0;
for i:=1 to n do
begin
 write('A[',i,']=');
 readln(a[i]);
 if a[i] mod 4=0 then s:=s+a[i];
 if(a[i] mod 10=0) then begin s2:=s2+a[i];d:=d+1;end;
 if a[i]<0 then t:=t+1;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
 if a[i] >a[j] then
 begin
  tam:=a[i];
  a[i]:=a[j];
  a[j]:=tam;
 end;
writeln('tong cac so chia het cho 4 la:',s);
if d>0 then writeln('TB cac so chia het cho 2 va 5 la:',s/d:4:2)
else writeln('TB cac so chia het cho 2 va 5 la:0'); 
writeln('so luong cac so be hon 0 la:',t);
write('mang sau khi sap xep la:');
for i:=1 to n do write(a[i],' ');
readln;
end.

a) Các phần tử chia hết cho 4 nghĩa là chia cho 4 dư 0. Nên mình sẽ dùng mod.

Code

Program vidu1;
Uses crt;Var a:array[1..300] of integer;
n,i, s:integer;
BEGIN

clrscr;

Readln(n);

For i:=1 to n do Readln(a[i]);
For i:= 1 to n do if a[i] mod 4 = 0 then s:= s+a[i];
Writeln(s);
Readln;
END.

b) Cũng giống như trên nhưng thêm bước nữa là tính trung bình.

Code

Program vidu2;
Uses crt;Var a:array[1..300] of integer;
n,i, s,d:integer;
BEGIN

clrscr;

Readln(n);

For i:=1 to n do Readln(a[i]);

d:=0;
For i:= 1 to n do if (a[i] mod 2 = 0) and (a[i] mod 5 = 0) then 

begin

     s:= s+a[i];

     d:=d+1;

end;
Writeln('Trung binh cac so chia het cho 2 va 5 trong mang la:');

Writeln(s/d:4:2);
Readln;
END.

c) Mình sẽ so sánh từng phần tử nhỏ hơn ko nếu đúng sẽ cộng 1 vào biến đếm

Code

Program vidu3;
Uses crt;
Var a:array[1..300] of integer;
n,i,d:integer;
BEGIN
clrscr;
Readln(n);
For i:= 1 to n do Readln(a[i]);
For i:= 1 to n do if a[i]<0 then d:=d+1;
Writeln(d);
Readln;
END.

d) Mình sẽ cho chạy 2 vòng lặp với biến đếm i và j sau đó so sánh nếu a[i] < a[j] sẽ đổi chỗ và từ đó mảng sẽ đước sắp xếp theo thứ tự tăng dần.

Code

Program vidu4;
Uses crt;
Var a:array[1..300] of integer;
n,i,d,j:integer;
BEGIN
clrscr;
Readln(n);
For i:= 1 to n do Readln(a[i]);
For i:= 1 to n do
        For j := 1 to n do
        If a[i] < a[j] then begin d:=a[i]; a[i]:= a[j]; a[j]:=d; end;
write('Mang sau khi sap xep: ');
For i:= 1 to n do Write(a[i],' ');
Readln;
END.