一道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函数中调用
要求使用指针!!!在线等,谢谢!! 展开
要求: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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询