01/10/2018, 17:16

Cho trước mảng A, số lượng phần tử n. Tách các số nguyên tố có trong mảng A vào mảng B

moi người cho e hỏi tại sao khi chạy chương trình lại ko xuất ra kết quả ạ

#include<stdio.h>
int snt(int n)
{
	int d,i;
	for(i =1;i<=n;i++)
	{
		if(n%i==0)
			d=d+1;
	}
	if(d==2)
		return 1;
	else
		return 0;
}
void main()
{
	int n,i,A[100],B[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&A[i]);
	int nB=0;
	for(i=0;i<n;i++)
	{
		if(snt(A[i])==1)
		{
			B[nB]=A[i];
			nB++;	
		}
	}
	for(i=0;i<nB;i++)
		printf("%d",B[i]);
}
Trương Tấn Phát viết 19:22 ngày 01/10/2018

Vì nó chẳng tách được số nguyên tố nào ra cả:

  • Chưa gán giá trị khởi tạo d => chưa chắc d = 0 đâu.
  • Hàm snt viết vòng lặp for khá dư thừa. Nên cho i chạy từ 2 đến n/2 là đủ.
Bài liên quan
0