30/09/2018, 16:13

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 !

Sáng Béo viết 18:23 ngày 30/09/2018

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

Phạm Hoàng Tuấn viết 18:25 ngày 30/09/2018

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ả

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

viết 18:26 ngày 30/09/2018
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; //Ở đây bạn gán test = 0, nhưng khi thực hiện xong vòng lặp trong
                                           // bạn không gán nó lại giá trị 1 như ban đầu bạn khởi tạo
                                            // Vậy thì vòng lặp ngoài khi chuyển đến giá trị tiếp theo, test của  bạn vẫn giữ nguyên giá trị 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; //Tương tự như ở trên.
				break;
			}
		}
		if ( Test1 == 1 )
		{
			c[k] = b[p];
			k++;
		}
	}
	xuatMang ( c, k );
}

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.

Phạm Khắc Quyền viết 18:19 ngày 30/09/2018

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;

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

Bài liên quan
0