main()
gets(a);
估计你用的也不是什么正儿八经的编译器了
认认真真完成作业,可以

程序代码:
#include <stdio.h>
#include <stdbool.h>
int main( void )
{
size_t count = 0;
bool flag = false; // 记录 前一个字符 是否为单词组成
for( char buf[81]; fgets(buf,sizeof(buf),stdin); ) // 这个缓冲区大小81可改为任意大于1的值
{
for( const char* p=buf; *p!='\0'; ++p )
{
if( *p=='\n' )
{
printf( "%zu\n", count );
return 0;
}
if( *p=='\t' || *p==' ' )
{
flag = false;
}
else
{
count += !flag;
flag = true;
}
}
}
return 0;
}
想偷懒,可以

程序代码:
#include <stdio.h>
int main( void )
{
size_t count = 0;
for( ; ; )
{
scanf( "%*[\t ]" );
int ch = getchar();
if( ch == '\n' )
break;
ungetc( ch, stdin );
scanf( "%*s" );
++count;
}
printf( "x = %zu\n", count );
}