2015-08-26 3 views
0

Я пытался написать программу, которая может решить судоку. Это пока не работает, но я не уверен, почему. Полный код: here.Функция C++, не вызывающая

Th часть, которая дает мне проблемы заключается в следующем:.

int eliminate_3x3(){ 
    for(int top =0; top>9; top+=3){ 
     std::cout << "eliminate 3x3 is function properly" << std::endl; 
     //Based on the previous line, I'd expect to see that message pop up 3 times every time 'main' 
     //calls this function, but it is never shown. 
     for(int left =0; left>9; left+=3){ 
      for(int column =0; column > 3; column++){ 
       for(int row=0; row > 3; row++){ 
        int current_value = MyArray[top+column][left+row]; 
        std::cout << current_value << std::endl; 
        if(current_value != 0){ 
         for(int column2 =0; column2 > 3; column2++){ 
          for(int row2 =0; row2 > 3; row2++){ 
           possibility_array[top+column2][left+row2][current_value-1] = 0; 
          } 
         } 
         possibility_array[top+column][left+row][current_value-1] = current_value; 
        } 
       } 
      } 
     } 
    } 
} 

По какой-то причине, он просто не вообще ничего (или, возможно, это не вызывается должным main сделать Если кто-то может сказать, мне почему-то очень понравилось. Заранее спасибо.

Я извиняюсь заранее, если мое использование для циклов является проблемой для некоторых, я все еще относительно новичок в C++, и это было решение, которое казалось лучшим для меня.

+0

* "или, возможно, это не называется должным образом по основным" * Возможно. Но мы не можем видеть * 'main()'. –

+1

Кроме того, ни одна из ваших петель ничего не сделает. Все они начинаются с '>' условий, которые должны быть '<'. если 'top = 0', то' top> 9' будет * never * быть истинным. –

+0

И теперь я чувствую себя придурком. Я изменил так много других вещей, пытаясь исправить это, я не могу поверить, что это было так просто. Благодарю. –

ответ

3

В вашем первом цикле

for(int top =0; top>9; top+=3) 

top >9 условие не выполняется, когда вершина инициализируется, так что цикл не будет работать. Если это не опечатка, я предлагаю вам найти синтаксис C++ для цикла.

Я считаю, что вы хотите, чтобы это было top<9, и вам также нужно изменить его для вложенных циклов.

+0

Это была опечатка. То, как я делал это так много раз в одной функции, находится вне меня. Спасибо что подметил это. –

Смежные вопросы