你按位取反的是scanf函数的返回值,不是你输入的i值,scanf的返回值是指成功输入的数的个数。
scanf返回值是输入数据的个数,没有输入就返回-1因此输入一个数,返回值是1,对1取反肯定是错的了。应该对输入的数i取反i=~i;