MAgic Square函数C ++

时间:2011-02-12 00:18:09

标签: c++ project magic-square

这是我魔法广场的最后一个功能,由于某种原因,它给了我一个错误,即数组下标有''[int]'但是我不知道这意味着什么,如果有人可以帮助解释什么我要做。

bool Square::is_magic()
{
    for (i = 0; i < size-1; i++)
    {
        if (sum_row[i] != sum_row[i+1])
            return false;

    if (sum_col[i] != sum_col[i+1])
        return false;
        }

    if (sum_row[0] != sum_col[0])
        return false;

    if (sum_row[0] != sum_maindiag[0])
        return false;

    if (sum_row[0] != sum_other[0])
        return false;

    return true;
}

2 个答案:

答案 0 :(得分:4)

好的,有时候每个人都是初学者。我真的建议你阅读一本或两本专注于c ++的书。 (我个人用“21天学习c ++”学习编程,很多人都抱怨,但这对我来说是个好开始。)

代码。不确定这是你需要的,它应该是这样的:

bool Square::is_magic()
{
   int i;
   for (i = 0; i < size-1; i++)
   {
       if (sum_row[i] != sum_row[i+1])
          return false;

       if (sum_col[i] != sum_col[i+1])
          return false;
   }

   if (sum_row[0] != sum_col[0])
         return false;

   if (sum_row[0] != sum_maindiag[0])
         return false;

   if (sum_row[0] != sum_other[0])
         return false;

   return true;

}

一些意见:

  1. if,for,while statement

  2. 之后不需要1个命令的括号
  3. 建议使用if - &gt;否则如果 - &gt;其他。这里没关系,因为一旦发现不正确的东西你就跳出了函数,但是如果你继续使用代码,你会检查其他语句,即使它没有必要。

  4. 习惯某种风格,自己制作或复制某人的风格。就个人而言,我这样使用括号:

    if(something!= somethingElse){    doSomeNastyThings();    doEvenMore(); }

  5. 祝你好运..

    编辑:为语句添加变量声明int,更新括号(巧妙的想法,如果-s不使用索引,则为最后3个)

答案 1 :(得分:1)

如果语句的格式如下:

if (condition) {
  do_this()
}

不喜欢这样:

{
if (condition)
  do_this()
}

他们对你的代码进行格式化,你会在两行之后关闭你的for循环,我想这不是你想要做的事情(因为你之后指的是var i)。