#include
#include
int sift(int a[],int n)//实现将素数删除,返回值为删除素数后元素个数
{
int i,m,flag;
for(i=0;i
{
flag=0;
m=(int)sqrt(a[i]);
for(int j=2;j<=m;j++)
{ if(a[i]%j==0)//a[i]是合数
{flag=1;
break;}
}
if(flag==0)//a[i]是素数
{
for(j=i;j
n--;//删除该素数后数组元素个数-1
i--;//因为a[i]已经改变需要从新验证,故需要-1
}
}
return n;
}
void main()
{
int a[10],i,k;
cout<<"请输入10个整数:";
for(i=0;i<10;i++)
cin>>a[i];
k=sift(a,10);
for(i=0;i
}
实现真正删除对我来说还真是有点困难,不过总算弄出来了,望采纳哦!
你这个程序和题意完全不对应啊 我给你从写一个带子函数的吧
#include
#define LEN 10
void del_val(int input[],int output[],int len){
int val;
cout<<"输入要删除的数据:"<
int j=-1;
for(int i=0;i
output[++j]=input[i];
}
}
cout<<"输出删除之后的结果:"<
cout<
#include
#include
using namespace std;
void fun(int *a,int &n)
{ int temp[10];
int point=0;
int i,j,m,flag,x,y;
for(i=0;i<10;i++)
{
if(a[i]!=1)
{
flag=0;
m=(int)sqrt(a[i]);
for(j=2;j<=m;j++)
if(a[i]%j==0)
flag=1;
if(!flag)
{
for(x=i;x
point++;
}
}
}
n-=point;
}
int main()
{
int a[10],i,flag,m,k=0,j;
cout<<"请输入10个整数:";
for(i=0;i<10;i++)
cin>>a[i];
int Size=10;
fun(a,Size);
for(i=0;i
}