01/10/2018, 13:52

Góp ý cho bài code

Em viết CT xóa số nguyên tố,nó đã xóa nhưng không xóa hẳn mà thay vào nhưng số ngto bằng số 0
Có ai góp ý dùm em để em xóa đc những số 0 này ko?

#include<stdio.h>
#include<math.h>
#define maxn 10000
void nhap(int a[],int &n);
void xuat(int a[],int n);
int nguyento(int n);
void xoanguyento(int a[],int n);
int main()
{
	int a[maxn]; 
	int n;      
	nhap(a,n);
	xuat(a,n);
	printf("
");
	nguyento(n);
	xoanguyento(a,n);
	xuat(a,n);

}
void nhap(int a[],int &n)
{
	    printf("Nhap n: ");
		scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		printf("a[%d]= ",i);
		scanf("%d",&a[i]);
	}
	
}
void xuat(int a[],int n)
{
	for(int i=0;i<n;i++)
	printf("%d ",a[i]);
}
int nguyento(int n)
{
	int k=sqrt(n);
	if(n<2) return 0;
	for(int i=2;i<=k;i++)
	if(n%i==0) return 0; return 1;
}
void xoanguyento(int a[],int n)
{
	for(int i=0;i<n;i++)
	{
		if(nguyento(a[i]))
		{
			for(int j=i;j<n;j++)
			{
				a[j]=a[j+1];
			}
			n--;
			i--;
		}
	}
}

Vd nhập n:5
1
2
3
4
5
1 2 3 4 5
thì nó ra 1 4 0 0 0
em muốn nó ra 1 4 mà ko biết sao

rogp10 viết 16:00 ngày 01/10/2018

Bạn quên tham biến ở 1 chỗ, và int &n không phải là code C

Từ Liên viết 16:03 ngày 01/10/2018

tks nhe bạn mình sửa đc r

Bài liên quan
0