GIúp đỡ về bài tập mảng 1 chiều

void ghepMang ( int a[], int &n, int b[], int &m )
{
	int c[100];
	int k = 0;
	int Test = 1;
	for ( int i = 0; i < n; i++ )
	{
		for ( int j = 0; j < m; j++ )
		{
			if ( a[i] == b[j] )
			{
				Test = 0;
				break;
			}
		}
		if ( Test == 1 )
		{
			c[k] = a[i];
			k++;
		}
	}
	int Test1 = 1;
	for ( int p = 0; p < m; p++ )
	{
		for ( int q = 0; q < n; q++ )
		{
			if ( b[p] == a[q] )
			{
				Test1 = 0;
				break;
			}
		}
		if ( Test1 == 1 )
		{
			c[k] = b[p];
			k++;
		}
	}
	xuatMang ( c, k );
}

Đề bài: Ghép 2 mảng A, B vào mảng C sao cho C không có phần tử trùng của A, B
Em viết sai chỗ nào ạ ! Mong sự giúp đỡ gấp ! Em xin cảm ơn !

1 Like

bạn có thể giải thích thuật toán của bạn ko?

A ngĩ e nên viết 1 hàm kiểm tra 1 số có tồn tại trog 1 mảng hay không, trả về 1 nếu tồn tại, 0 nếu k tồn tại;

Mã giả :smile:

for i=0 -> n
for j=0 - >m
if a[i]==b[j]
if(KiemTraTonTai(a[i],c)==0)
đưa a[i] vào c
else // tuc a[i]!=a[j]
if(KiemTraTonTai(a[i],c)==0)
đưa a[i] vào c
if(KiemTraTonTai(b[j],c)==0)
đưa b[j] vào c

1 Like

Mình không cần quan tâm thuật toán của bạn là gì. Nhưng mình vẫn có thể chỉ ra chổ sai cho bạn. Bạn xem trong phần trích dẫn luôn nha.

OK .tks bạn :smile: Vậy thì mình hiểu r`

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