Given an array, Print All the Repeated Numbers with Frequency in an Array
For example:
If the input is
1 1 1 1 2 2 2 3 3 4
then the result is
1 4
For example:
If the input is
1 1 1 1 2 2 2 3 3 4
then the result is
1 4
2 3
3 2
4 1
Implementation:
#include <stdio.h> #include <stdlib.h> #include <string.h> /* swap function that swaps the values using call by reference */ void swap(int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp; } int main(void) { int a[]={1,2,3,4,1,2,3,1,2,1},i,j,temp,count; /* calculate te size of the array or number of elements of the array */ int n=sizeof(a)/sizeof(*a); /* Sort the array */ for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(*(a+i)>*(a+j)) swap((a+i),(a+j)); } } /* Print the array */ for(i=0;i<n;i++) printf("%d ",*(a+i)); printf("\n"); /* Find each element's frequency and print it */ temp=*(a+i); count=1; for(i=1;i<=n;i++) { if(*(a+i)==temp) count++; else { printf("%d %d\n",temp,count); count=1; temp=*(a+i); } } return 0; }