这是我魔法广场的最后一个功能,由于某种原因,它给了我一个错误,即数组下标有''[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;
}
答案 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;
}
一些意见:
if,for,while statement
建议使用if - &gt;否则如果 - &gt;其他。这里没关系,因为一旦发现不正确的东西你就跳出了函数,但是如果你继续使用代码,你会检查其他语句,即使它没有必要。
习惯某种风格,自己制作或复制某人的风格。就个人而言,我这样使用括号:
if(something!= somethingElse){ doSomeNastyThings(); doEvenMore(); }
编辑:为语句添加变量声明int,更新括号(巧妙的想法,如果-s不使用索引,则为最后3个)
答案 1 :(得分:1)
如果语句的格式如下:
if (condition) {
do_this()
}
不喜欢这样:
{
if (condition)
do_this()
}
他们对你的代码进行格式化,你会在两行之后关闭你的for循环,我想这不是你想要做的事情(因为你之后指的是var i)。