Code:
//chú ý, mình chọn số 0 làm sign, tức là số sẽ 0 không được tính đến trong mảng số, chỉ xét các số từ 1 ~> n... Nếu muốn xét cả số 0 thì ban đầu chỉ việc đếm số 0 trong mảng trước! (Y:DY)
#include <stdio.h>
#include <conio.h>
#define n 20
void FindNumber(int *a, int k)
{
int count=1; //đếm số tìm được
int run=0; //biến chạy để duyệt mảng
while(run<n)
{ if(a[run]!=0)
{
int temp[n]; //mảng tạm chứa các số giống nhau
for(int z=0;z<n;z++) temp[z]=0; //khởi tạo ban đầu mảng tạm có tất cả các phần tử đều =0
temp[0]=a[run];
int i,j,l=0;
for(i=0;i<n;i++)
{
if (a[i]==temp[0]) //bắt đầu gán các số giống nhau của mảng a[] vào mảng temp[]
{
temp[l]=a[i];
l++;
a[i]=0;
}
}
int t=0;
while(temp[t]!=0) //đếm số phần tử của temp[]
{
t++;
}
if(t==k) //nếu số phần tử của temp[] == k
{
printf("so xuat hien nhieu thu %d la %d voi so lan xuat hien la %d\n",count,temp[0],k);
count++;
}
}
run++;
}
}
void main()
{
int a[n];
int k;
printf("nhap cac phan tu cho mang a\n");
for(int i=0;i<n;i++)
{
printf("a[%d] = ",i);
scanf("%d",&a[i]);
}
printf("nhap k\n");
scanf("%d",&k);
FindNumber(a,k);
getch();
}
have fun!
