Xuất Ra Số Lần Xuất Hiện Của Các Phần Tử Trong Mảng? - Programming Trang chủ » Nhập Mảng A Gồm N Phần Tử Sao Cho Mọi Phần Tử Lặp Lại Không Quá 2 Lần » Xuất Ra Số Lần Xuất Hiện Của Các Phần Tử Trong Mảng? - Programming Có thể bạn quan tâm Nhập Mảng A Gồm N Phần Tử Số Nguyên Sao Cho Các Số Dương Có Thứ Tự Tăng Nhập Mảng A Gồm N Phần Tử Tính Tổng Các Phần Tử Trong Mảng Nhập Mảng A Gồm N Phần Tử Tính Tổng Các Số âm Trong Mảng Nhập Mảng Cấu Trúc Trong C++ Nhập Mảng Chuỗi Trong C Xuất ra số lần xuất hiện của các phần tử trong mảng? programming c Kelvin_Nguy_n (Kelvin Nguyễn) October 19, 2020, 10:15am #1 Em có bài tập mảng 1 chiều. Nhập vào 1 mảng gồm n phần tử. Xuất ra số lần xuất hiện của các phần tử trong mảng. Và tìm phần tử nào xuất hiện nhiều nhất, và ít nhất Cho em ý tưởng cái minh_vu_03 December 12, 2014, 12:40pm #2 #include <iostream> using namespace std; std::pair<int,int> find_max_frequency(int* a,int n) { int temp[n]; for(int i = 0; i < n; i++) temp[i] = 1; int max = 1,max_index = 0; for(int i = 1; i < n; i++) { for(int j = 0; j < i; j++) { if(a[i] == a[j]) { temp[i] = temp[j]+1; if(max < temp[i]) { max_index = i; max = temp[i]; } } } } return {a[max_index],max}; } int main() { int a[] = { 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5 }; int n = sizeof(a)/sizeof(a[0]); std::pair<int,int> m = find_max_frequency(a,n); cout << "Element and frequency: "; cout << m.first << " " << m.second << endl; return 0; } Cũng chưa test, chắc là có sai, tí nữa về test lại sau. 3 Likes yuh (Huy) December 12, 2014, 11:34am #3 Có nhiều cách. Bày cho 1 ý tưởng cơ bản: sắp xếp mảng tăng hoặc giảm dần. xét a[i] và a[i+1] (2 phần tử liền kề). Nếu = nhau thì tăng đếm lên 1 (dem++); nếu a[i] và a[i+1] khác nhau thì trả về biến đếm trước. đó là đếm =))) Tìm max+min thì duyệt mảng, tìm max_dem và min_dem không khó đâu =)) :trollface: :running: 5 Likes Htc (Hồ Thế Chín) December 12, 2014, 11:52am #4 trong diễn đàn có bài này rồi mà 1 Like ltd (Lê Trần Đạt) December 12, 2014, 1:04pm #5 @Htc cho luôn cái link đi để @Kelvin_Nguy_n vào xem. Sau này hi vọng sẽ có cơ chế thông báo có bài trùng do thành viên phát hiện. Khi phát hiện ra bài trùng thì mình thông báo thông qua chức năng đó. 2 Likes Kelvin_Nguy_n (Kelvin Nguyễn) December 12, 2014, 3:16pm #6 int demphantu(int a[],int n) { int dem=1; for(int i=0;i<n;i++) { if(a[i]=a[i+1]) { dem++; } else { return dem; } printf("\nPhan tu a[%d] xuat hien %d lan",i,dem); } } Sai chổ nào mọi người 2 Likes Honey_moon (Thực tế khắc nghiệt) December 12, 2014, 3:18pm #7 Kelvin_Nguy_n: if(a[i]=a[i+1]) { dem++; } else { return dem; } printf("\nPhan tu a[%d] xuat hien %d lan",i,dem); } cái dòng này loàng ngoàng vậy ? 1 Like minh_vu_03 December 12, 2014, 3:51pm #8 Kelvin_Nguy_n: int demphantu(int a[],int n) { int dem=1; for(int i=0;i<n;i++) { if(a[i]=a[i+1]) { dem++; } else { return dem; } printf("\nPhan tu a[%d] xuat hien %d lan",i,dem); } } Sai chổ nào mọi người Bạn chưa sắp xếp mảng. Vòng lặp có thể kết thúc khi chưa hết vòng lặp. 2 Likes yuh (Huy) December 12, 2014, 4:26pm #9 nhìn vào if đã thấy sai :trollface: 1 Like htwap (lu___va_sa__) December 13, 2014, 3:46am #10 Kelvin_Nguy_n: Sai chổ nào mọi người cái if nó luôn là true 1 Like Anh_Tong (Anh Tống) September 14, 2019, 1:44pm #11 Lần đầu mong mọi người góp ý ạ #include <stdio.h> void swap(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } void nhapham(int a[], int n) { for (int i = 0; i < n; i++) { printf("the value of A[%d]= ", i + 1); scanf("%d", &a[i]); } } int main(void) { int n; int a[20]; printf("so luong:\n"); scanf("%d", &n); nhapham(a, n); for (int i = 0; i <n; i++) { for (int j = i + 1; j < n; j++) if (a[i]<a[j]) swap(&a[i], &a[j]); } int chuan = a[0]; int count = 0; for (int i = 0; i < n; i++) { if (a[i]==chuan) { count++; } if (chuan!=a[i]) { printf("the %d appear %d times\n", a[i - 1], count); chuan = a[i]; count = 1; } if (i==n-1) { printf("the %d appear %d times\n", a[i], count); } } return 0; } 1 Like tri2007 (Phan Minh Trí) October 19, 2020, 10:14am #12 sao bạn không đặt thêm 1 mảng nx? cho là: cin>>z[i]; lap[z[i]]++; lap là mảng thứ 2 đó 1 Like noname00 (HK boy) split this topic January 9, 2021, 5:46pm #13 2 posts were merged into an existing topic: Topic lưu trữ các post off-topic - version 3 DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Nhập Mảng A Gồm N Phần Tử Sao Cho Mọi Phần Tử Lặp Lại Không Quá 2 Lần Đếm Số Số Xuất Hiện Từ Hai Lần Trở Lên Đếm Số Lần Xuất Hiện Của Các Phần Tử Trong Mảng C/C++ [Lập Trình C++ Cơ Bản] Bài 7 (phần 1): Mảng Một Chiều - Viblo Độ Phức Tạp Của Thuật Toán Và Lựa Chọn Cách Giải Thuật Thuật Toán Sắp Xếp Trong C++ | TopDev Xóa "Mù" Lập Trình | Bài Này Mình được Một Bạn Học Viên Hỏi Nên ... Tìm Phần Tử đầu Tiên Bị Lặp Lại Trong Mảng - Deft Blog 25 Bài Tập Lập Vòng Lặp C++ Có Lời Giải [PDF] Bài 3. Mảng Và Xâu Kí Tự Kiểu C - VNU-UET [PDF] Chương 1: Matlab Cơ Bản - VNU-UET [PDF] Lê Minh Hoàng - Khoa CNTT - EPU Các Bài Toán Cơ Bản - Mảng Một Chiều - Đề Cương Chi Tiết Kỹ Thuật ... Một Số Bài Toán Quy Hoạch động điển Hình - VNOI Đếm Số Nguyên Tố Có Trong Mảng Một Chiều Các Số Nguyên Bằng C