作者:yunjinqi 类别:
日期:2023-05-31 11:47:31
阅读:130 次 消耗积分:0 分
#include<stdio.h>
#include<math.h>
// 参考别人答案
int main(){
int count=0,a=0,sum=0,b=0; //count 是用来记录每个单词的长度
char c; //c是用来接收的字符的
do{
scanf("%c",&c);
if(c!=' '&&c!='.'){ //第一个if判断:输入的是否是应该计算的字符
count++;
}
if(c==' '&&count>0){ //第二个if判断:遇到空格而且不是连续空格时输出单词长度
sum=sum*10+count; //由于要考虑上文中所说的第二种情况,所以先将每个单词的长度作为一位,放在sum中。(长度超过9会出现错误)
count=0;
a++; //判断sum的位数
}
if(c=='.'&&count>0){ //最后一个单词位数的记录
sum=sum*10+count;
count=0;
a++;
}
}while(c!='.');
for(int i=a-1;i>=0;i--){ //按位拆分sum,进行输出
b=pow(10,i);
printf("%d",sum/b);
if(i>0){ //判断是否是最后一个单词的长度,不是则输出空格
printf(" ");
}
sum=sum%b;
}
return 0;
}