C++。字数统计。函数调用中参数太多。

C++。字数统计,运行显示 函数调用中参数太多。
请问是哪里的问题?该如何更改?
(该代码非原创代码仅供学习使用)

#include
#include
int main()
{
    int n,m;                                            //n行,m列
    int g;                                              //段落数
    int end;                                            //可能作为断尾的行数
    int a[105];                                         //一行字符(数字)
    int b[10005];                                       //上一行行末0的个数记入数组
    { 
        while(scanf("%d%d%d",&n,&m,&g)!=EOF)
        {
            int ans = 0;                                  //答案
            int num = 0;                                  //表示上一行的尾端的空白字数
            int end = 0;                                  //段落数量
            for(int i = 1;i <= n;i++)
            {
                for(int j = 1;j <= m;j++)
                {
                    scanf("%d",&a[j]);
                    //统计全部为0的个数
                    if(!a[j])ans++;
                }
                //上一行可以作为尾端
                if(!a[1]&&!a[2])
                    b[++end]=num;
                //算出这一行尾端的空白字数
                for(int j = m;j >= 1;j--)
                //第一次不是0
                if(a[j] == 1)
                {
                    num = m-j;                      //行末0的个数
                    break;
                } 
            }
            ans -= 2 * g;                             //去掉段首
            ans -= num;                             //去掉段尾的空白字数
            //利用贪心算法,减去行末最多0的个数
            sort(b+1,b+end+1);
            for(int i = end;i >= end-(g-2);i--)
                ans -= b[i];
            printf("%d\n",ans);
        }
        return 0;
    }          

代码:

 
#include<stdio.h>
int main()
{
    char c;
    int letters = 0, space = 0, digit = 0, other = 0;
    printf("请输入一行字符:\n");
    while ((c = getchar()) && c!= '\n')
    {
        if ((c >= 'a' && c <= 'z' )|| (c >= 'A' && c <= 'Z'))
            letters++;
        else if (c == ' ')
            space++;
        else if (c >= '0' && c <= '9')
            digit++;
        else
            other++;
    }
    printf("%d\n", letters+space+digit+other);
    return 0;
    }
}

错误消息没发出来,不好判断