#include<stdio.h>
int prime(int x);
int main(void){
int i,j,n,a[100];
printf("please input n:");
scanf("%d",&n);
printf("please input a[i]: ");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
if(prime(a[i])==1)
{
for(j=i;j<n;j++){
a[j]=a[j+1];
}
n--;
i--;
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int prime(int x){
int i;
for(i=x/2;i>2;i--){
if(x%i==0)
return 0;
}
return 1;
}
删除数组除了要n--;还要i--;因为如果不进行i--;在第一个 for循环中,i会一直加一往后顺延,导致结果最后素数删除不干净,希望这种错误以后能少范,引以为戒。