Tin học Nhập dãy số và số lần xuất hiện

uyen132004@yahoo.com

Học sinh mới
Thành viên
23 Tháng mười 2019
10
2
6
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

nhập dãy số và số lần xuất hiện , in ra các số có số lần xuất hiện = số đã cho
vd : nhập dãy số 1 7 8 3 8 8 1
số lần xuất hiện : 2
xuất những số có số lần xuất hiện 2 lần trở lên : 1 8
mấy bác kt xem e sai chỗ nào ạ!!
 

Attachments

  • 213213123.PNG
    213213123.PNG
    250.9 KB · Đọc: 66
Last edited:

Nhật Hạ !

Học sinh chăm học
Thành viên
14 Tháng tư 2019
409
292
76
18
Quảng Nam
THCS Lê Quang Sung
Phần thân chính đây, bạn chạy thử xem sao.
Mã:
For i:=1 to n do
Begin
  s:=0;
  x:=a[i];
For j:=1 to n do
  if a[j]=a[i] then inc(s);
If s>=k then writeln(s[j]);
End;
 
Last edited:

Nhật Hạ !

Học sinh chăm học
Thành viên
14 Tháng tư 2019
409
292
76
18
Quảng Nam
THCS Lê Quang Sung
Last edited:

CuongGrove

Học sinh
Thành viên
29 Tháng mười 2019
83
36
21
20
Quảng Ngãi
THPT Trà Bồng
nhập dãy số và số lần xuất hiện , in ra các số có số lần xuất hiện = số đã cho
vd : nhập dãy số 1 7 8 3 8 8 1
số lần xuất hiện : 2
xuất những số có số lần xuất hiện 2 lần trở lên : 1 8
mấy bác kt xem e sai chỗ nào ạ!!
Ủa, sao ở trên bạn nói bằng số đã cho mà kết quả test lại là "2 lần trở lên"
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
20
Bà Rịa - Vũng Tàu
thcs hòa hiệp
À à, vậy bạn sắp xếp trước rồi làm như này:
Mã:
s:=1;
For i:=1 to n do
if a[i]=a[i+1] then inc(s) else
If s>=k then writeln(s[i]);
End;
Xem thử được không nha bạn
Mình có 1 cách khác như sau...
Và đây là cách giải của mình... mình sẽ dùng 1 dãy phụ
Mình số soạn ra hẳn 1 powerpoint về cái dùng dãy phụ để đếm số lần xuất hiện luôn. (mình sẽ đính kèm ở dưới comment này)
và cả mã code pascal của bài này nữa
inc(b[a]) là tăng b[a] lên 1 đơn vị
-- Để mình nói rõ cái đề lại xíu : Nhập dãy có N phần tửk. In ra màn hình các số có số lần xuất hiện lớn hơn hoặc bằng k .
Mã:
var  a,b:array[1..1000000] of integer;
       n,max,max1:int64;
        i,k:integer;
begin
read(n,k);
  for i:=1 to n do
   begin
    read(a[i]);
    inc(b[a[i]]);
    if max<a[i] then max:=a[i];
   end;
 for i:=1 to max do
   if b[i]>=k then write(i,' ');
readln;
end.

 

Attachments

  • day phu.pptx
    161 KB · Đọc: 64
Last edited:
Top Bottom