C语言:写一个函数,实现的功能是:查找一单链表中值为素数的结点,并将这样的结点删除。

 我来答
百度网友83cdc1c
2015-07-10 · TA获得超过5788个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:824万
展开全部
#include <stdio.h>
struct node
{
    int num;
    struct node *next;
};
int isPrim(int n)
{
    int i;
    if(n==1)
        return 0;
    for(i=2;i*i<=n;i++)
        if(n%i==0)
            return 0;
    return 1;
}
int main(void)
{
    struct node *head, *t, *p;
    int i;

    head = t = NULL;
    for(i=0;i<10;i++)
    {
        p = malloc(sizeof(struct node));
        scanf("%d", &(p->num));
        p->next = NULL;
        if(head == NULL)
            head = p;
        else
            t->next = p;
        t = p;
    }

    for(p = head, t = NULL; p; t = p, p = p->next)
    {
        if(isPrim(p->num))
        {
            if(p == head)
                head = p->next;
            else
                t->next = p->next;
            free(p);
            if(t == NULL)
                p = head;
            else
                p = t;
        }
    }

    for(p = head; p; p = p->next)
        printf("%d ", p->num);

    while(head)
    {
        p = head->next;
        free(head);
        head = p;
    }
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式