C语言指针问题

题目:统计给定的整数中有几个是素数。输入:n+1行整数第1行为一个整数n,表示后续有n个需要统计的整数第2~n+1行为待统计的整数输出:统计出来的素数数量请使用预设代码,... 题目:统计给定的整数中有几个是素数。输入:n+1 行整数 第1行为一个整数n,表示后续有n个需要统计的整数 第2~n+1行为待统计的整数
输出:统计出来的素数数量
请使用预设代码,编写并提交制定的函数代码
展开
 我来答
百度网友83cdc1c
推荐于2016-02-23 · TA获得超过5788个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:806万
展开全部
int *input(int n)
{
    int *p;
    
    p = malloc(sizeof(int) * n);    //没有全局变量可存放整数,必须申请空间
    if(p == NULL)
        return NULL;
        
    for(;n>0;n--)
        scanf("%d", &p[n -1]);
    
    return p;
}

int PrimCount(int *p, int n)
{
    int cnt = 0;

    for(;n>0;n--)
    {
        if(isPrim(p[n-1])
            cnt++;
    }
    
    free(p);        //处理完成后,释放空间
    
    return cnt;
}
追问

我想请看看我写的代码哪里有问题,麻烦解答下

追答
你的代码里,input函数里的a[n]是个局部变量,局部变量在函数input运行结束后就失效了,这个数组对应的地址也不能给其他函数使用。
娱乐文风
2020-04-25 · 贡献了超过121个回答
知道答主
回答量:121
采纳率:100%
帮助的人:5.6万
展开全部

30分钟彻底学会C语言指针

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友005b7b3
2017-12-21
知道答主
回答量:40
采纳率:0%
帮助的人:7.9万
展开全部

int * input(int n)
{
int *p;
p=(int*)malloc(sizeof(int)*n);
if(p==NULL)
return NULL;
for(;n>0;n--)
scanf("%d",&p[n-1]);
return p;
}

int PrimCount( int *p, int n)
{
int sum=0;
for(;n>0;n--)
{
if(isPrim(p[n-1]))
sum++;
}
free(p);
return sum;
}


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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式