C++在控制台上计数问题

在控制台中记录0出现的次数
只能输入0和1
在控制台的第一行输入0和1总共出现的次数,第二行到第N行随机输入0和1。
然后输出0出现的次数,如果没有0,则输出-1;如果只有一个0,则输出-2.
例如
输入
10
1
1
1
0
1
1
1
0
0
1
输出
3
再例如输入
5
1
1
1
1
1
输出
-1

供参考:

#include<stdio.h>
int main()
{
    int n,k,cnt=0;
    scanf("%d",&n);
    while(n--)
    {
       scanf("%d",&k);
       if(k==0) cnt++;
    }
    if(cnt==0)
       printf("-1");
    else if(cnt==1)
       printf("-2");
    else
       printf("%d",cnt);
    return 0;
}