Bài 233: Hãy liệt kê tần suất giá trị xuất dãy Lưu ý: giá trị liệt kêt tần suất lần #include #include #define MAX 100 void NhapMang(int a[], int n) { for (int i = 0; i < n; i++) { printf("\nNhap vao phan tu a[%d] = ", i); scanf_s("%d", &a[i]); } } void XuatMang(int a[], int n) { for (int i = 0; i < n; i++) { printf("%4d", a[i]); } } /* Ý TƯƠNG: Đứng từ vị trí ta lùi xét vị trí trước xem giá trị có bị trùng hay không? Nếu có bỏ qua, không chạy từ vị trí sau để đếm xem có phần tử trùng với */ int KiemTraBiTrung(int a[], int n, int ViTri) { for (int i = ViTri - 1; i >= 0; i ) { if (a[i] == a[ViTri]) { return 0; } } return 1; } // Đếm xem từ vị trí trở sau có phần tử bị trùng int DemSoLuongPhanTuTrung(int a[], int n, int ViTri) { int dem = 1; for (int i = ViTri + 1; i < n; i++) { if (a[i] == a[ViTri]) { dem++; } } return dem; } void DemTanSuatXuatHien(int a[], int n) { for (int i = 0; i < n; i++) { int CheckTrung = KiemTraBiTrung(a, n, i); if (CheckTrung == 1) { int dem = DemSoLuongPhanTuTrung(a, n, i); printf("\nPhan tu %d xuat hien %d lan", a[i], dem); } } } int main() { int n; { printf("\nNhap vao so luong phan tu cua mang: "); scanf_s("%d", &n); if (n < || n > MAX) { printf("\nSo luong phan tu nhap vao khong hop le Xin kiem tra lai !"); } } while (n < || n > MAX); int a[MAX]; NhapMang(a, n); XuatMang(a, n); DemTanSuatXuatHien(a, n); getch(); return 0; }