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
Bài liên quan
Bạn quên tham biến ở 1 chỗ, và
int &n
không phải là code Ctks nhe bạn mình sửa đc r