数组循环不能正常工作?C++

cod*_*ail 3 c++ arrays boolean

试图计算数组中有多少元素不等于0,设置错了?

我想检查数组中的所有值(它是一个数独的板),然后当所有元素都"满"时,我需要返回true.什么关闭?

bool boardFull(const Square board[BOARD_SIZE][BOARD_SIZE])
{
    int totalCount=0;
    for (int index1 = 0; index1 < BOARD_SIZE; index1++)
        for (int index2 = 0; index2 < BOARD_SIZE; index2++){ 
             if(board[index1][index2].number!=0)
                totalCount++;
        }
    if(totalCount=81)
        return true;
    else 
        return false;
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 12

你有=而不是==

if (totalCount == 81)
Run Code Online (Sandbox Code Playgroud)

是正确的路线.

使用单个"="执行此操作实际上会将值81分配给totalCount,因此您的测试非常重要:

if (81)
Run Code Online (Sandbox Code Playgroud)

因为在C++中,任何非零都是真的,这总是如此

  • 养成了打开高级别警告的编译习惯 - 编译器会为你发现这一点 (5认同)
  • @John:Ew ...... :) (2认同)
  • @John:我不是!:) (2认同)