Viết chương trình C để đếm số lần xuất hiện của từng phần tử mảng

Các bước thực hiện để viết chương trình C:

1. Nhập vào kích thước size của mảng. Tạo mảng arr có kích thước size

2. Khai báo 1 mảng freq có cùng kích thước với mảng arr, mảng freq này sẽ lưu trữ số lần xuất hiện của từng phần tử mảng arr

3. Để đếm số lần xuất hiện của từng phần tử, sử dụng hai vòng lặp:

  • Một vòng lặp bên ngoài để chọn một phần tử mảng for(i=0; i<size; i++). 
  • Vòng lặp bên trong thứ hai để tìm số phần tử = với phần tử mảng arr[i]: for(j = i + 1; j < size; j++)
  • Sử dụng một biến count để đếm tổng số lần xuất hiện của arr[i]. Trong vòng lặp bên trong, kiểm tra if(arr[i] == arr[j]) thì count++. Chú ý, ko đếm lại phần tử đã đếm rồi
  • Lưu trữ tổng số lần xuất hiện của phần tử hiện tại arr[i] trong mảng tần số. Đó là nói freq[i] = count.

4. In ra mảng freq để lấy số lần xuất hiện của từng phần tử mảng.

Code tham khảo của chương trình C:


#include <stdio.h>

int main()
{
int arr[100], freq[100];
int size, i, j, count;

/*Input size of array */
printf("Enter size of array: ");
scanf("%d", &size);

/* Input elements in array */
printf("Enter elements in array: ");
for(i=0; i<size; i++)
{
scanf("%d", &arr[i]);

/* Initially initialize frequencies to -1 */
freq[i] = -1;
}


for(i=0; i<size; i++)
{
count = 1;
for(j=i+1; j<size; j++)
{
/* If duplicate element is found */
if(arr[i]==arr[j])
{
count++;

/* Make sure not to count frequency of same element again */
freq[j] = 0;
}
}

/* If frequency of current element is not counted */
if(freq[i] != 0)
{
freq[i] = count;
}
}

/*
* Print frequency of each element
*/
printf("\nFrequency of all elements of array : \n");
for(i=0; i<size; i++)
{
if(freq[i] != 0)
{
printf("%d occurs %d times\n", arr[i], freq[i]);
}
}

return 0;
}