一道C语言题,要求使用指针!!! 10

编写程序,其功能是:在主函数中输入整数m,在函数fun中将所有大于1小于整数m的素数存入XX所指数组中,并将素数的个数传回主函数。例如,输入25,则应输出23571113... 编写程序,其功能是:在主函数中输入整数m,在函数fun中将所有大于1小于整数m的素数存入XX所指数组中,并将素数的个数传回主函数。例如,输入25,则应输出2 3 5 7 11 13 17 19 23.
要求:1)整数m的输入,素数和素数个数的输出在main函数中完成。
2)fun函数完成将所有大于1小于整数m的素数存入XX所指数组中,并将素数的个数通过k传回主函数的功能
3)fun函数在main函数中调用
要求使用指针!!!在线等,谢谢!!
展开
 我来答
匿名用户
2013-06-07
展开全部
/**
  * ListPrime.c
  */
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

void fun(unsigned m, unsigned *XX, unsigned *cnt){
unsigned i=3;
*cnt = 0;
if(m<=2)
return;
XX[0] = 2;
*cnt += 1;

for(; i<m; i++){
unsigned max = (unsigned)ceil(sqrt((float)i));
short isPrime = 1;
unsigned j=2;

for(; j<=max; j++){
if(i%j)
continue;

isPrime = 0;
break;
}

if(isPrime){
XX[*cnt] = i;
*cnt += 1;
}
}
}

int main(){
unsigned m = 0;
unsigned *XX = NULL;
unsigned count = 0;
unsigned i=0;
unsigned *A = NULL;

scanf("%d", &m);
XX = (unsigned*)malloc(sizeof(unsigned)*m);
if(!XX){
printf("Failed to malloc!\n");
return -1;
}

fun(m, XX, &count);

printf("There is(are) %u prime number(s).\n", count); 
for(; i<count; i++)
printf("%d\t", XX[i]);

free(XX);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式