scanf("%d", &n) 是从标准输入读入一个整数赋值给n,并且返回值是读入的值。
while( scanf(..) != EOF ) 就是一直从读取数据,直到读到一个EOF标记为止
EOF 是 end of line的意思,也就是行结束标识
scanf("%d", &n) 是输入一个值。
while( scanf(..) != EOF ) 就是一直从读取数据中 判断 读到一个EOF标记为止
EOF 是 end of line的意思,也就是行结束标识
如:
scanf("%d,%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
上边的两个都是看返回值来判断的 至于while(~scanf("%d",&n)) 没用过
t>>=1 即t = t >> 1 右移一位再赋值。