Cho một mảng 1 chiều có n phần tử. Hãy đếm số lần xuất hiện của từng phần tử trong mảng.
Ví dụ: Với n = 6
và a[] = {1, 2, 3, 1, 2, 1}
. Khi đó:
- Số 1 xuất hiện 3 lần
- Số 2 xuất hiện 2 lần
- Số 3 xuất hiện 1 lần
Chương trình đếm số lần xuất hiện của từng phần tử trong mảng bằng C
#include <stdio.h> #include <stdbool.h> #define MAX 1000 int cnt[MAX]; // mang chua tan so xuat hien int main(){ int n; printf("Nhap so phan tu cua mang: "); scanf("%d,",&n); int a[n]; int i; for(i = 0; i<n;i++){ printf("a[%d] = ",i); scanf("%d", &a[i]); } printf("\n\nMang vua nhap:\n"); for(i = 0; i<n;i++){ printf("%d ", a[i]); } for(int i = 0;i < MAX; i++) cnt[i] = 0; for(int i = 0; i < n;i++){ cnt[a[i]]++; } for(int i = 0;i < MAX; i++){ if(cnt[i] > 0){ printf("\nGia tri %d xuat hien %d lan ", i, cnt[i]); } } }