Viết chương trình C để in ra tất cả các phần tử duy nhất của 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 các phần tử duy nhất của mảng arr[i] nếu freq[i] có giá trị = 1

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

#include <stdio.h>
#define MAX_SIZE 100

int main()
{
int arr[MAX_SIZE], freq[MAX_SIZE];
int size, i, j, count;
/* Input size of array and elements in array */
printf("Enter size of array: ");
scanf("%d", &size);
printf("Enter elements in array: ");
for(i=0; i<size; i++)
{
scanf("%d", &arr[i]);
freq[i] = -1;
}
/* Find frequency of each element */
for(i=0; i<size; i++)
{
count = 1;
for(j=i+1; j<size; j++)
{
if(arr[i] == arr[j])
{
count++;
freq[j] = 0;
}
}
if(freq[i] != 0)
{
freq[i] = count;
}
}
/* Print all unique elements of array */
printf("\nUnique elements in the array are: ");
for(i=0; i<size; i++)
{
if(freq[i] == 1)
{
printf("%d ", arr[i]);
}
}

return 0;
}