#include<stdio.h>
int main()
{
int i = 0, ct = 0;
char ch;
while ((ch=getchar())!='@'){
if (ch == '\n' || ch == '\t' || ch == ' '){
if (i > 0){
ct++;
i=0;
}
}
else {
i++;
}
}
if (i>0)ct++;
printf ("%d\n", ct);
return 0;
}
追问没用函数啊
追答#include<stdio.h>
int count()
{
int i = 0, ct = 0;
char ch;
while ((ch=getchar())!='@'){
if (ch == '\n' || ch == '\t' || ch == ' '){
if (i > 0){
ct++;
i=0;
}
}
else {
i++;
}
}
if (i>0)ct++;
return ct;
}
int main()
{
int ct = count();
printf ("%d\n", ct);
return 0;
}
追问if(i>0)那个,i本来就等于0,肯定执行i++,完了i>0执行执行ct++,那么直接为if(i>=0);ct++;不行吗
追答不行啊,这里i用于统计一个单词的长度,如果一个单词的长度为0,那么他肯定不是一个单词,这里默认每个单词长度大于0的,只有当一个单词的长度大于零时,算作一个单词,统计个数+1,并初始化新的单词长度为0
追问前面看懂了,那么
else
i++;这句是什么意思呢
前面看懂了,那么
else
i++;这句是什么意思呢?
追答这句是关键,是单词分隔符的时候,那么就统计这个单词,并舒适化了下一个单词的字符个数为0,如果不是单词分隔符,那么这个字符就属于当前统计的单词中,当前统计的单词的长度就+1
初始化写成舒适化了