c语言 编写一个函数 搜索出一组数中的素数 并将它保存到另一个数组中

要求:编写一个函数unsignedintsearch_prime(参数1,参数2,参数3)1.传入数组数据给search_prime函数,search_prime函数执行... 要求:编写一个函数unsigned int search_prime(参数1,参数2,参数3)
1.传入数组数据给search_prime函数,search_prime函数执行完后保存结果到另一个数组中。
2.函数中数组的元素访问使用指针访问,不要用[ ]访问。
3.参数3为输入数组的长度
4.返回搜索到的质数数目
展开
 我来答
HongZe081100
2012-11-20 · TA获得超过580个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:440万
展开全部
//这个给你参考

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<assert.h>
#include<memory.h>

bool is_prime(unsigned int n)
{
if(n<2)
{
return false;
}
unsigned int ncnt=(unsigned int)sqrt(n*1.0);
for(unsigned int i=2;i<=ncnt;i++)
{
if(n%i==0)
return false;
}

return true;}
unsigned int search_prime(int* src,int* res,int n)
{
// assert(src!=NULL&&res!=NULL); //

memset(res,0,sizeof(int)*n);
unsigned int ncnt=0;
for(int i=0;i<n;i++)
{
if(is_prime(*src))
{
*res++=*src;
++ncnt;
}
src++;
}
return ncnt;
}

int main()
{
int test[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int res[20]={0};
int ncnt=search_prime(test,res,20);
printf("%d\n",ncnt);
for(int i=0;i<ncnt;i++)
{
printf("%d ",res[i]);
}
printf("\n");

return 0;}
追问
呃呃呃…看不懂啊…我是出学…才学到指针
追答
哪里有问题?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫罗兰の风度
2012-11-20 · 超过21用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:58.2万
展开全部
给你个例子 自己改改, 编程不动脑子是永远学不会的
#include <iostream.h>
#include <math.h>
void Sprint(int &);
int main()
{
int num=0;
cin>>num;
while(num)
{
Sprint(num);
cout<<endl;
cin>>num;
}
return 0;
}
void Sprint(int &n)
{
int i=1,j=0,judg=1;
for(i=2;i<=n;judg=1,i++)
{
for(j=2;j<=(int)sqrt(i);j++)
if(i%j==0 && i!=j)
judg=0;
if(judg)
cout<<i<<'\t';
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式