作业帮 > 综合 > 作业

从键盘上输入:study hard,or you 'll fall behind.,输出的结果为?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/16 04:09:44
从键盘上输入:study hard,or you 'll fall behind.,输出的结果为?
main()
{ char ch;int num=0,flag=0;
while((ch=getchar())!='\n')
{ if(ch==' ')
\x05\x05\x05
flag=0;
else if(flag==0)
\x05\x05\x05
{ flag=!flag;
num++;
\x05\x05\x05
}
}
\x05\x05
从键盘上输入:study hard,or you 'll fall behind.,输出的结果为?
不是太完善的统计单词数的程序
以空格为区分点 连续多个空格按照一个空格处理
统计以空格分隔的单词数
所以
study hard,or you 'll fall behind.
这个会被区分成
study
hard,or
you
'll
fall
behind.
6个单词
于是最终num值为6
再问: flag=0;和 flag==0是怎么回事?
再答: 程序初始化时或者遇到空格后 flag为0 所以 else if(flag==0) { flag=!flag; num++; } 这段代码的含义是 当遇到一个非空格的字母时,如果它的前一个字符是空格或者是字符串开头 那么认为这是一个单词的开始 把单词统计值num自加一次