while循环中你修改了number值,循环结束number变为0了啊。后面if(sum==number)肯定就不对了在while循环前,定义一个变量等于number,最后判定相等用这个新定义的变量,比如
int k = number; while(number) { } if(sum == k) return 1;