0

这是我的幻方的最后一个函数,由于某种原因,它给了我一个错误,即数组下标存在“'[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;
}
4

2 回答 2

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 语句后的 1 个命令不需要括号

  2. 建议使用 if -> else if -> else。在这里没关系,因为一旦发现不正确的内容就会跳出功能,但是如果您继续编写代码,即使没有必要,您也会检查其他语句。

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

    if (something != somethingElse){ doSomeNastyThings(); 做更多();}

祝你好运..

编辑:为语句添加了变量声明 int,更新了括号(聪明的想法,因为最后 3 个 if-s 没有使用索引)

于 2011-02-12T01:00:31.843 回答
1

如果语句的格式如下:

if (condition) {
  do_this()
}

不是这样的:

{
if (condition)
  do_this()
}

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

于 2011-02-12T01:01:31.507 回答