if(i!=0123)在c中0123以0开头将后面的数当做八进制数,所以将八进制123转化成十进制后为83,你输入83就是密码正确!
不是补码的问题,你输入的时候是%d,是一个数字,数字里面没有0123,只有123。
第一个数字不能是0;你去用掉0,或者把0放在其他地方就可以运行了。