1 取模符号+自增问题
我们不妨尝试写这样的程序
#include<stdio.h>
int main()
{
int n,t=5;
printf("%d\n",7%(-3));//1
printf("%d\n",(-7)%3);//-1
while(--t)
printf("%d\n",t);
t=5;
while(t--)
printf("%d\n",t);
return 0;
}
运行结果如下:
第一个运行结果为1, 第二个运行结果为-1,说明取模运算的符号取决于被除数
i++代表先判断之后再+1,++i代表+1之后再进行判断
所以第一个循环打印到1就结束了,第二个循环还能够打印0
2 ~scanf问题
~是按位取反
scanf的返回值是输入值的个数
如果没有输入值就是返回-1
-1按位取反结果是0
while(~scanf("%d", &n))就是当没有输入的时候退出循环