2011-02-12 37 views
0

這是我的最後一個函數,用於我的幻方,出於某種原因,它給了我一個錯誤,指出數組下標「'[int]'但我不知道這是什麼意思,如果有人可以幫助解釋我必須做的事情。MAgic Square函數C++

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

好的,大家在某個時候開始了。我真的建議你閱讀一本或兩本關於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. 你不需要括號後,如果1個命令,同時聲明

  2. 建議使用if - > else if - > else。這裏沒關係,因爲只要你發現不正確的東西就跳出了功能,但是如果你繼續使用代碼,你會檢查其他語句,即使它不是必需的。適應某種風格,製作自己的或複製某人的風格。我個人使用這種括號:

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

祝你好運..

編輯:添加變量聲明爲INT聲明,更新括號(聰明的想法在去年3如果-S不使用索引)

+0

非常感謝。我會繼續嘗試,我修正了這一點,但它給了我同樣的錯誤。我希望我能弄清楚什麼是錯的。 – Richard

+1

哦是的..我忽略了一個..在for語句..第一部分的「for」是初始化,所以你需要定義你的變量,就像你通常..試試編輯代碼 – Raven

+0

我只是試過了,它是仍然給我同樣的錯誤。在代碼中我完全沒有看到任何錯誤,這是唯一顯示錯誤的部分。 – Richard

1

if語句格式如下:

if (condition) { 
    do_this() 
} 

不喜歡這樣的:

{ 
if (condition) 
    do_this() 
} 

他們以這種方式格式化代碼,你會在兩行之後關閉for循環,我想這不是你想要做的事情(因爲你之後指的是var i)。