用F5启动程序,遇到出错时候,选择重试,点击debug工具条的stack按钮,看看是哪个函数的哪个语句出的问题。

解决方案 »

  1.   

    rocks_lee(石子儿):
      您好!
      谢谢您的指点,但我还是找不出问题出在哪里?下面是我的源码,您能帮我指出问题所在吗?#include <iostream.h>
    #define null 0struct pk{int id; //id值1到13,代表13张牌从上到下的排列;
              int value; //VALUE值从1到13分别代表每张牌;
              pk* pForward; //指向前一张牌的指针;
              pk* pNext; //指向后一张牌的指针;
    };
    void main()
    {
     pk czz[13]; //声明一个共13个元素的PK结构数组,每个元素代表一张牌;
     pk* pFirst=&czz[0]; //链首指针;
     pk* pEnd=&czz[12]; //链尾指针;
     pk* pTempFirst; //中间指针变量;
     pk* pTempEnd;   //中间指针变量;
    for(int n=0;n<13;n++) //初始化数组元素;
    {
       if(n=0)
       {
       czz[n].id=n+1;
       czz[n].value=0;
       czz[n].pForward=(pk*)null;
       czz[n].pNext=&czz[n+1];
       }
    else if(n=12)
       {
       czz[n].id=n+1;
       czz[n].value=0;
       czz[n].pForward=&czz[n-1];
       czz[n].pNext=(pk*)null;
       }
    else
       {
       czz[n].id=n+1;
       czz[n].value=0;
       czz[n].pForward=&czz[n-1];
       czz[n].pNext=&czz[n+1];
       }
    }
    for(int j=1;j<=13;j++)  //算出每个PK结构变量的value值;
    {pTempFirst=pFirst;
    pFirst=pEnd;
    pFirst->pForward=(pk*)null;
    pFirst->pNext=pTempFirst;
    pTempFirst->pForward=pFirst;
    pEnd=pEnd->pForward;
    pTempEnd=pEnd;
    pEnd->value=j;
    pEnd->pNext=(pk*)null;
    pEnd=pTempEnd->pForward;
    pTempEnd->pForward=(pk*)null;
    pEnd->pNext=(pk*)null;
    if(pFirst->pNext=pEnd)
    {pFirst->value=12;
     pEnd->value=13;
     break;
    }
    }
    for(int m=0;m<13;m++)
    {
    cout<<czz[m].id<<":"<<czz[m].value<<"\n"<<endl;//从上到下输出每张牌,结果即为原始序列;
    }
    }
      

  2.   

    你的pEnd 是一个空指针.你再仔细看看.
      

  3.   

    首先得指出,你的程序中有个致命的错误:
    if(n=0) 这样的语句应全改为
    if(n==0)的形式。
    其它的容我再慢慢看。
      

  4.   

    什么乱七八糟的。刚学C呀?
    if(n=0) ?????  ---->if(n==0)
    if(n=12) ????? ---->if(n==12)pTempFirst=pFirst;
    pFirst=pEnd;
    pFirst->pForward=(pk*)null;  ???? 这样pEnd->pForword=NULL!!!!!
        这里pFirst和pEnd指向同一地址。。没玩过指针啊。
      
    pFirst->pNext=pTempFirst;
    pTempFirst->pForward=pFirst;
    pEnd=pEnd->pForward;   ???? 这样就完蛋了。
      

  5.   

    刚学C???????????????????if(n=0) ????----------->if(n==0)
    if(n==12)????-----〉if(n==12)pTempFirst=pFirst;
    pFirst=pEnd;
    pFirst->pForward=(pk*)null;  ??????? 这样pEnd->pForward = NULL;
    pFirst->pNext=pTempFirst;
    pTempFirst->pForward=pFirst;
    pEnd=pEnd->pForward;   ----->pEnd=NULL;啦学学如何使用指针吧。
      

  6.   

    不要忘了
    if(pFirst->pNext=pEnd)
    也要改过来还有我看不懂你第二个for循环在做什么?你的id和Value有什么区别?既然用了链表(第一个for循环如果正确完成,则此链表以做好),为什么还要用for循环,你没有发现在for循环对链表进行操作很烦人吗?请告诉我你的程序要完成什么任务。
    [email protected]
      

  7.   

    verybigbug说得太激烈了吧,不要打击新手嘛,大家都是从这个时候过来的。
    因为if(n=0) 和if(n=12)的错误,实际上只初始化了czz[12]一个元素……