按位取反,简单地说就是二进制1变0,0变1

由于scanf是有返回值的,且返回值为int型

特别的此处用法导致只有scanf返回-1,循环才会结束,也就是要返回EOF

while (~scanf("%d%d",&n,&m))等效于 while (scanf("%d%d",&n,&m)!=EOF)