while(scanf("%d",&x)!=EOF){}该循环语句条件常被使用于测试数据可能不止一组,但又不能使用死循环从而导致程序结束不了程序超时。
首先要了解一下scanf函数。scanf()函数是有返回值的,它会返回被输入函数成功赋值的变量个数。在程序测试过程中,如果仍有测试数据未被测试完,那么scanf会将值赋给变量,返回1,循环条件成立则继续循环。如果测试数据结束,scanf无法对变量进行赋值,于是scanf()返回EOF(end of file)。此时循环条件不成立,程序结束。
while(scanf("%d",&x)!=EOF){}该循环语句条件常被使用于测试数据可能不止一组,但又不能使用死循环从而导致程序结束不了程序超时。
首先要了解一下scanf函数。scanf()函数是有返回值的,它会返回被输入函数成功赋值的变量个数。在程序测试过程中,如果仍有测试数据未被测试完,那么scanf会将值赋给变量,返回1,循环条件成立则继续循环。如果测试数据结束,scanf无法对变量进行赋值,于是scanf()返回EOF(end of file)。此时循环条件不成立,程序结束。