根据你的程序 当n=3 不满足n=1条件 所以走else 然后执行
hanoi(n-1,one,three,two); // 2 A C B
move(one,three); //调用move函数 输出 c-->B
hanoi(n-1,two,one,three); // 1 A B C
至于你说为什么此时n=1不执行if(n==1)是因为你的程序if和else没有在一个循环中,程序只会判断一次,如果你加一个while(n-1!=0)或者for循环在if前面才会不停检验n的值