美文网首页
盘点c语言学习中易犯得八大错误

盘点c语言学习中易犯得八大错误

作者: 这个夏天卟太热 | 来源:发表于2018-05-18 08:43 被阅读6次

    初学者常犯的错误是:

    1:分号忘记

    2:大括号不匹配,中括号不匹配,小括号不匹配(你应该先打括号,再填入内容:切记,高手都这样)。如果你不这么做,会出现这样的困惑:((()()()((()()((((()()((... 这个右边你能一眼看出要补充多少右括号吗?以及哪个括号对应哪个括号?

    3:赋值'=' 与等于 '==' 混淆。

    4:作用域问题:没声明就使用变量,没初始化就是用变量,变量名冲突(同一个作用域一样的变量名字被声明了)等等。

    5:if语句大括号体内范围不明确,最好不论是if、for、while,只要涉及到大括号的语法结构,都不要省略,并明确在视觉上对称,以免混淆哪个应该在哪个包括区域内。

    6:指针,要清晰指针和一般变量的区别和使用方法,怎么弄清?不断的写代码,改代码,测试,所见即所得,至少你写的代码得到的结果不会和理论相悖,并能验证你对它们的理解是否有误。

    7:类和对象,需要通过写代码去不断验证你对重载、继承、多态、内联、友元、静态、指针对象等等概念的理解和它们之间的正确关系。

    8:模板,同样少不了你要不断敲代码改写代码去验证你所认为的是否和实际相符合。改变认知的过程及其重要,学习就是不断构造认知,以及修正观点的过程。想要共同探讨此类问题得加入组织呦!666+295+498邀请码(夏热)!

    文末奉上经典游戏五子棋部分代码(需要的@小编呦!)

    //********************************************************* 判断输赢

    void CWuZiQi_Web_ServerView::IfWin()

    {

    for(int i=0;i

    {

    for(int j=0;j

    {

    if(1==m_q.GetFlag(i,j)) // 判断黑棋是否赢

    {

    if((m_q.GetFlag(i,j-2)==1)&&(m_q.GetFlag(i,j-1)==1)&&(m_q.GetFlag(i,j+1)==1)&&(m_q.GetFlag(i,j+2)==1)) //行

    {

    AfxMessageBox("游戏结束!\n黑方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i-2,j)==1)&&(m_q.GetFlag(i-1,j)==1)&&(m_q.GetFlag(i+1,j)==1)&&(m_q.GetFlag(i+2,j)==1)) //列

    {

    AfxMessageBox("游戏结束!\n黑方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i-2,j-2)==1)&&(m_q.GetFlag(i-1,j-1)==1)&&(m_q.GetFlag(i+1,j+1)==1)&&(m_q.GetFlag(i+2,j+2)==1)) //主对角线

    {

    AfxMessageBox("游戏结束!\n黑方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i+2,j-2)==1)&&(m_q.GetFlag(i+1,j-1)==1)&&(m_q.GetFlag(i-1,j+1)==1)&&(m_q.GetFlag(i-2,j+2)==1)) //副对角线

    {

    AfxMessageBox("游戏结束!\n黑方赢!");

    KillTimer(1);

    }

    }

    if(2==m_q.GetFlag(i,j)) // 判断白棋是否赢

    {

    if((m_q.GetFlag(i,j-2)==2)&&(m_q.GetFlag(i,j-1)==2)&&(m_q.GetFlag(i,j+1)==2)&&(m_q.GetFlag(i,j+2)==2)) //行

    {

    AfxMessageBox("游戏结束!\n白方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i-2,j)==2)&&(m_q.GetFlag(i-1,j)==2)&&(m_q.GetFlag(i+1,j)==2)&&(m_q.GetFlag(i+2,j)==2)) //列

    {

    AfxMessageBox("游戏结束!\n白方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i-2,j-2)==2)&&(m_q.GetFlag(i-1,j-1)==2)&&(m_q.GetFlag(i+1,j+1)==2)&&(m_q.GetFlag(i+2,j+2)==2)) //主对角线

    {

    AfxMessageBox("游戏结束!\n白方赢!");

    KillTimer(1);

    }

    if((m_q.GetFlag(i+2,j-2)==2)&&(m_q.GetFlag(i+1,j-1)==2)&&(m_q.GetFlag(i-1,j+1)==2)&&(m_q.GetFlag(i-2,j+2)==2)) //副对角线

    {

    AfxMessageBox("游戏结束!\n白方赢!");

    KillTimer(1);

    }

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:盘点c语言学习中易犯得八大错误

          本文链接:https://www.haomeiwen.com/subject/pwuwdftx.html