作业帮 > 综合 > 作业

大家帮我看看这道程序题错哪里?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/28 18:02:34
大家帮我看看这道程序题错哪里?
13人围成一圈,从第一个人开始顺序报号1,2,3.凡报到“3”者退出圈子,找出最后留在圈中的人,输出他的序号.
#include
#include
using namespace std;
struct node {int number;
node *next;
};
node * Head_Creat( )
{node *head,*n;
int a;
head=NULL;
for(a=1;anumber=a;
if(!head) head=n,n->next=head;
else n->next=head,head=n;
}
return head;
}
node * Delete_node(node *head)
{node *p1,*p2;
p2=p1->next;
while(p2!==NULL)
{for(int i=1;inext;
}
p1->next=p2->next;
delete p2;
cout
大家帮我看看这道程序题错哪里?
改了下:
#include
#include
using namespace std;
#define NUM 13
struct node
{
int number;
struct node *next;
};
node * Head_Creat( )
{
node *head,*n,*ptmp;
int a;
head=NULL;
for(a=NUM; a>0; a--)
{
n=new node;
n->number=a;
if(!head)
{
head=n,n->next=head;//头结点next置空
ptmp = head;
}
else
{
n->next=head,head=n;
ptmp->next = head;
}
}
return head;
}
node * Delete_node(node *head)
{
node *p1,*p2;
while (head->next !=head)
{
head = head->next;
p1 = head; //指向数2节点
head = head->next;
p2 = head; //指向待删除的节点
head = head->next; //指向下一个数1的节点
delete p2;
p1->next = head;
}
return head;
}
int main(void)
{
node *head;
head=Head_Creat();
cout