~在while里是啥意思呢
while (~scanf("%d %d %d", &a, &a, &a))这一句中的~是啥意思,没有这个的话运行超时{:10_243:} 本帖最后由 4goodworld 于 2020-2-28 23:15 编辑
网上搜来,这个问题多百度
scanf("%d %d",&a,&b);
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF(-1)。end of file为Ctrl+z 或者Ctrl+d。
~
‘~’ 为一元运算符,用于求整数的二进制反码。
scanf()的返回值为大于等于-1的数,只有当scanf()返回值为-1(二进制表示为全1)时,~scanf()的值为0,其他情况均不为0.
while
while循环只有在条件为假(0)时才跳出循环(条件值为负数仍继续循环)。
当输入未遇到错误(scanf()返回值不为0)时,循环会一直继续下去,进而达到控制循环的目的。
再简单讲:这个while (~scanf("%d %d %d", &a, &a, &a))命令的目的就是等到人向程序输入值了才循环结束,否则一直等待你输入
页:
[1]