scanf("%d",&n),n是逗号表达式,值是最后一项的值,也就是n的值。那么如果输入的n小于等于0,while就退出循环了EOF是文件结束符,它是个常量,值是-1。把它与scanf的返回值做比较之前,就需要知道scanf的返回值到底是什么如果scanf函数不报错,那么返回值就是最后一个输入的有效数字。比如scanf("%d%d",&a,&b),如果输入1,2,那么返回值是2.如果输入1,b,b识别不出来,返回值是1如果读取出错了(输入非法),那么返回值是0