首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

高分请高手来修改这最后一个异常!Lvalue required in function panduan

2012-03-20 
高分请高手来修改这最后一个错误!Lvalue required in function panduaninta[12]{5,5,5,5,5,5,5,5,5,5,5,5

高分请高手来修改这最后一个错误!Lvalue required in function panduan
int   a[12]={5,5,5,5,5,5,5,5,5,5,5,5};
int   playerA,playerB;
void   zouchi(int   i,int   *p)
{   int   m,q,h;
    for(;;)
    {   for(h=i;h <i+a[i];h++)
          {   q=h+1;
              if(q> 11)q=0;
              a[q]++;
          }
        m=i+a[i]+2;
        if(m> 11)m=0;
        if(a[m-1]==0)
            {   if(a[m]!=0)
                {   (*p)=(*p)+a[m];
                    a[m]=0;
                    break;
                }
                else   break;
            }
        else   i=m-1;
    }
}
int   panduan(int   *p2,int   f)
{   int   c[12],g,m,p,q,max,t,h;
    for(g=f;g <f+6;g++)
    {   for(;;)
        {   for(h=f;f <f+*(p2+f);h++)
            {   q=h+1;
if(q> 11)q=0;
*(p2+q)++;
            }
            m=*(p2+f)+f+2;
            if(m> 11)m=0;
            if(*(p2+m-1)==0)
                {   if(*(p2+m)!=0)
                    {   c[g]=*(p2+m);
                        *(p2+m)=0;
                        break;
                    }
                    else   break;
                }
            else   f=m-1;
        }
    }
    max=c[f],t=f;
    for(h=f+1;h <f+6;h++)
    {   if(c[h]> max)
        {   max=c[h];
            t=h;
        }
    }
    return   t;
}
main()
{   int   *p,s,b[12],flagA,flagB,i;
    do{
          p=&playerA;
          for(s=0;s <12;s++)
              b[s]=a[s];
          zouchi(panduan(b,0),p);
          runB:   flagB=0;
                      for(i=6;i <12;i++)
                          if(a[i]!=0)flagB++;
                      if(flagB==0)   goto   runA;
                      p=&playerB;


          for(s=0;s <12;s++)
              b[s]=a[s];
          i=panduan(b,6);
          zouchi(i,p);
          runA:   flagA=0;
                      for(i=0;i <6;i++)
                          if(a[i]!=0)flagA++;
                      if(flagA==0)   goto   runB;
          }while(flagA!=0||flagB!=0);
    printf( "%d,%d ",playerA,playerB);
}

[解决办法]
单从编译来说
*(p2+q)++;
改为
(*(p2+q))++;就没问题了.

热点排行