Tim các chữ số xuất hiện ít nhất trong mảng

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define MAX 100

void xuatmang(int a[], int n)
{
	for (int i = 0; i < n; ++i)
	{
		printf("%4d", a[i]);
	}
}

void chusoxuathienitnhat(int a[], int n, int c[], int &k)
{
	int b[10] = { 0 };
	for (int i = 0; i < n; ++i)
	{
		int temp = abs(a[i]);
		while (temp != 0)
		{
			int chuso = temp % 10;
			b[chuso]++;
			temp /= 10;
		}
	}
	for (int i = 0; i <= 9; ++i)
	{
		printf("\n%d xuat hien %d lan", i, b[i]);
	}
	int Min = abs(a[0] % 10);
    for (int i = 0; i < 10; ++i)
	{
		if (b[i] < b[Min])
		{
			Min = i;
		}
	}
	int k = 0;
	for (int i = 0; i < 10; ++i)
	{
		if (b[i] == b[Min])
		{
			c[k++] = i;
		}
	}
}


int main()
{
	int a[MAX], n;
	int c[MAX], k;
	printf("\nNhap so phan tu trong mang: ");
	scanf("%d", &n);
	srand(time(0));
	for (int i = 0; i < n; ++i)
	{
		a[i] = rand() % (51) -20;
	}
	printf("\nMang gom:");
	xuatmang(a, n);
	chusoxuathienitnhat(a, n, c, k);
	xuatmang(c, k);
	
	

	_getch();
	return 0;
}

em muốn nó liệt kê những chữ số xuất hiện bao nhiêu lần m và in ra những chữ số xuất hiện ít nhất nhưng k chạy được . cho hỏi em sai chỗ nào ạ

Rắc rối thế?

Không dùng đến tham số k của hàm à?

1 Like

em cập nhật nó qua mảng c ấy ạ .

Ý mình nói là tham số int &k hàm void chusoxuathienitnhat(int a[], int n, int c[], int &k) không dùng à?
Bạn đã khai báo biến int k = 0 mới kìa.

1 Like

e cảm ơn ạ … nhầm chỗ đấy . hehe .

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?