Nhập một dãy A (mỗi số chỉ xuất 1 lần) có N (< 40) số tự nhiên và 1 số K. Hãy xuất ra các phần tử có số lần xuất hiện trong dãy A từ K lần trở lên.
Dữ liệu nhập: file DAYSO.INP:
- Dòng 1: 2 số n và k cách nhau bởi 1 dấu cách.
- Dòng 2: dãy A.
Dữ liệu ra: file DAYSO.OUT: Xuất các số thỏa điều kiện trên.
Dữ liệu nhập: file DAYSO.INP:
- Dòng 1: 2 số n và k cách nhau bởi 1 dấu cách.
- Dòng 2: dãy A.
Dữ liệu ra: file DAYSO.OUT: Xuất các số thỏa điều kiện trên.
uses crt;
var a,b:array[0..100] of integer;
n,j,i,k:integer;
f:text;
Procedure docf;
begin
assign(f,'C:\DAYSO.INP');
reset(f);
i:=0;
read(f,n);
readln(f,k);
While not eof(f) do
begin
inc(i);
read(f,a[i]);
end;
close(f);
end;
Procedure xuly;
begin
assign(f,'C:\DAYSO.OUT');
rewrite(f);
FillChar(b,SizeOf(b),0);
For i:=1 to n do inc(b[a[i]]);
For i:=1 to n do
if (b[i]<>0) (b[i]>=k) then
write(f,i,' ');
close(f);
end;
BEGIN
clrscr;
docf;
xuly;
readln
var a,b:array[0..100] of integer;
n,j,i,k:integer;
f:text;
Procedure docf;
begin
assign(f,'C:\DAYSO.INP');
reset(f);
i:=0;
read(f,n);
readln(f,k);
While not eof(f) do
begin
inc(i);
read(f,a[i]);
end;
close(f);
end;
Procedure xuly;
begin
assign(f,'C:\DAYSO.OUT');
rewrite(f);
FillChar(b,SizeOf(b),0);
For i:=1 to n do inc(b[a[i]]);
For i:=1 to n do
if (b[i]<>0) (b[i]>=k) then
write(f,i,' ');
close(f);
end;
BEGIN
clrscr;
docf;
xuly;
readln
end.
Chú thích:
- Hàm Fillchar(x,sizeof(x),i): điền lần lượt các byte của dữ liệu này bằng giá trị byte của i (i được coi là chiếm một byte).
Như vậy, đối với mảng kiểu integer hay longint (cả số cũng vậy), máy sẽ điền lần lượt các byte của dữ liệu:
Fillchar 1=00000001 (1 byte= 8 bit -> phải có đủ 8 chữ số cả 0 và 1).
Fillchar 1=00000001 (1 byte= 8 bit -> phải có đủ 8 chữ số cả 0 và 1).
- Sizeof(x): Trả về kích thước của biến trong bộ nhớ.
0 nhận xét:
Đăng nhận xét