C语言:写一个函数,实现的功能是:查找一单链表中值为素数的结点,并将这样的结点删除。
1个回答
展开全部
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询