CreateList(L,N);
temp = L;
while(temp->next != temp && temp)
{
for(i=M-1;i>0;i--)
{
if(temp->next == NULL)
temp->next = L->next;
else
temp = temp->next;
}
cout<next->nData< temp->next = temp->next->next;
}
主要代码如上,断点调试的时候发现if else语句都没有执行,改了一下代码也没有什么作用,求教各位了
if(temp->next == NULL)改成if(temp->next == 0)
代码再全一些啊,M是什么,是不是没有进入循环?
你可以在if语句里设置个输出语句,看看你的程序运行时输出没,如果输出,则说明是调试某个步骤搞错了;如果没有输出,则说明程序出问题了。具体问题还需要
更详细的代码
M是多少?是不是根本没进for循环呀?
把temp-next打印出来
temp->next是不是野指针
#include
using namespace std;
typedef struct SNode
{
int nData;
struct SNode *next;
}SNode,*LinkList;
void CreateList(LinkList &L,int n)
{
int i = n;
L = (SNode*)malloc(sizeof(SNode));
L->next = NULL;
LinkList p;
while(i!=0)
{
p = (LinkList)malloc(sizeof(SNode));
p->nData = i;
p->next = L->next;
L->next = p;
i--;
}
}
void main()
{
int M,N;
int i,j=0;
LinkList L,temp;
cout<<"type in the value of N,M"< cin>>N>>M;
cout< CreateList(L,N);
temp = L;
while(temp->next != temp && temp)
{
for(i=M-1;i>0;i--)
{
if(temp->next == NULL)
temp->next = L->next;
else
temp = temp->next;
}
cout<next->nData< temp->next = temp->next->next;
}
cout<nData<<endl;
}
完整的代码
只有一种可能,M-1<=0了
自己Debug一下看看,应该就清楚了吧~
temp = temp->next;
打一下L吧,L 是什么?