01/10/2018, 14:43

Trích những phần tử trong A không phải số nguyên tố ra mảng B

void TrichNguyenTo(int *a, int n, int *b, int m)
{
	m = 0;
	for (int i = 0; i < n; i++)
	{
		
		if (!SoNguyenTo(a[i]))
		{
			b = new int[m];
			b[m++] = a[i];
		}
	}
}
int main()
{
	int *a, n;
	int *b, m;
	printf("nhap so phan tu cua mang
");
	scanf_s("%d", &n);
	a = new int[n];
	NhapMang(a, n);
	TrichNguyenTo(a, n, b, m);
	XuatMang(b, m);
	delete[] b;
	delete[] a;
	_getch();
	return 0;
}

Bác nào sửa dùm em bìa này với, lỗi chỗ nào nhỉ?

HK boy viết 16:53 ngày 01/10/2018

b = new int[m];
b[m++] = a[i];

Mỗi lần gặp 1 số không phải số nguyên tố thì tạo lại mảng b, thế thì dữ liệu cũ mất hết à?

Võ Đức Dân viết 16:58 ngày 01/10/2018

Thế là phải xác định số không phải số nguyên trước rồi mới cấp phát hả bạn?

HK boy viết 16:45 ngày 01/10/2018

Trường hợp tối đa là mảng chỉ có toàn số không phải số nguyên tố -> cứ khởi tạo mảng B là n phần tử đi, thừa cũng không sao.

Võ Đức Dân viết 16:51 ngày 01/10/2018

Tại đang học tới con trỏ nên muốn dùng cấp phát động đó mà.

Bài liên quan
0