#include<stdio.h>
int main()
{
    char a[1000]={ };
    int count=0;
    gets(a);   //记录整个数组的时候,用gets即可,scanf无法记录空格 换行符,必须用gets
    for(int j=1;j<=1000;j++)
    {
        if(a[j-1]>='A'&&a[j-1]<='z'||a[j-1]>='0'&&a[j-1]<='9')count++;
    }
printf("%d",count);
}

新手C写的,用scanf的话,16例 3 OO 3后面的那个空格会被系统认为结束,没办法读取完整的字符串。