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]);
        }
    }
}

By alaza7

Leave a Reply

Your email address will not be published. Required fields are marked *