Hãy liệt kê các giá trị có số lần xuất hiện nhiều nhất trong mảng

5 917 2
Hãy liệt kê các giá trị có số lần xuất hiện nhiều nhất trong mảng

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài 237 + 238(*): Hãy liệt kê giá trị có số lần xuất nhiều mảng #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]); } } int TimTanSuatXuatHienMax(int a[], int n) { int Max = 1; // phần tử tối thiêu xuất for (int i = 0; i < n; i++) { int dem = 1; // Tính for (int j = i + 1; j < n; j++) { if (a[i] == a[j]) { dem++; } } if (dem > Max) { Max = dem; } } return Max; } int KiemTraBiTrung(int a[], int n, int index) { for (int i = index - 1; i >= 0; i ) { if (a[i] == a[index]) { return 0; // Bị trùng } } return 1; // Không bị trùng } int DemTanSuatXuatHien(int a[], int n, int index) { int dem = 1; // Tính for (int i = index + 1; i < n; i++) { if (a[i] == a[index]) { dem++; } } return dem; } void LietKeCacSoXuatHienNhieuNhat(int a[], int n) { int TanSuatMax = TimTanSuatXuatHienMax(a, n); for (int i = 0; i < n; i++) { int CheckTrung = KiemTraBiTrung(a, n, i); if (CheckTrung == 1) // xử lý không trùng { int TanSuat = DemTanSuatXuatHien(a, n, i); //printf("\nPhan tu %d xuat hien %d lan", a[i], TanSuat); if (TanSuat == TanSuatMax) { printf("\nPhan tu xuat hien nhieu nhat la %d", a[i]); } } } printf("\n=> So lan xuat hien la: %d", TanSuatMax); } 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 khong hop le Xin kiem tra lai !"); } } while (n < || n > MAX); int a[MAX]; NhapMang(a, n); XuatMang(a, n); /*int TanSuatMax = TimTanSuatXuatHienMax(a, n); printf("\nTan suat xuat hien lon nhat la: %d", TanSuatMax);*/ LietKeCacSoXuatHienNhieuNhat(a, n); getch(); return 0; }

Ngày đăng: 20/10/2016, 16:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan