while(scanf("%c",&h)!='#')
如果你不知道这句话的执行顺序或者执行原理,建议不要这样去书写,或者编程。
先学习一下scanf()的使用方法. scanf()的返回值并不是返回你输入的内容, 而是返回你正确输入的内容的个数. 因此,scanf()只能返回int型的数字, 而不会返回字符.
在某些特殊情况下, 根据C的特点, scanf()的返回值可以和某个字符进行关系运算, 比如,输入65个数字, scnaf()返回了65,然后和字符A来运算等,但一般来说, 几乎没有人会这么去做.
因为你只是输入了一个字符, scanf()几乎都会正确执行,也就返回数字1, 而1!='#'永远都成立.