因为你第一个数1是while(n)上面scanf("%d",&n);输入的n而不是循环内部输入的n计数计的是循环内部的,相当于就计了 2 3 4 -1 -2第一个输入的1 并没有参与计数。所以结果显示正数会少一个。