[求助]指针在链表里的问题
n个人围成一圈报数每数m到把这个人剔除,然后又从一数起。要求输出每次这个人的编号
我用链表做的这个程序编译和连接通过以后运行会说 不能为只读
以前做指针的时候也总是这样
怎么回事呢?
谢谢各位
#include <stdio.h>
#include <malloc.h>
struct intNode{
int value;
struct intNode *next;
};
void main()
{
int i,j,n,m;
struct intNode *p,*head,*tail,*w,*u;
printf("enter m,n\n");
scanf("%d,%d",&m,&n);
for(i=1;i<=n;i++){
p=(struct intNode*)malloc(sizeof(struct intNode));
head=p;
p->value=i;
if(tail==NULL) head=tail=p;
else tail=tail->next=p;
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
w=p;//保留前驱指针
p=p->next;
}
printf("%d\n",p->value);
w->next=p->next;//把已经出现的数剔除
p->next=NULL;
}
}