某人要的标志变量法(手动狗头)
题目描述从键盘输入一行字符,长度小于1000。统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。
输入输入只有一行句子。仅有空格和英文字母构成
输出单词的个数
样例输入 Copy<span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#f5f5f5">stable marriage problem Consists of Matching members </span></span></span></span></span>
样例输出 Copy<span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#f5f5f5">7 </span></span></span></span></span>
来源/分类
//这种题用标志变量很方便
/*这个题要求说标点也算单词,如果要求标点
不算单词的话,把标记状态为可计数的条件换
一下就可以了(比如if(!isalpha(a[i])))*/
#include<stdio.h>
#include<math.h>
#include<ctype.h>
int main()
{
char a[10000] = { 0 };
gets(a);
int t = 1, i = -1,sum=0;
while (a[++i] != '\0')
{
if (a[i] == ' ')//是空格的话,标记状态为“可计数”,并跳过循环
{
t = 1;
continue;
}
if (t == 1)//如果不是空格(即没有跳过循环)
{
t = 0;//标记状态为“不可计数”,并使计数器+1
sum++;
}
}
printf("%d\n", sum);
return 0;
}