这个题的测试用例只卡在了空句子那一个,题目没有明确给出只有一个"."的时候,什么也不输出直接结束。

#include<stdio.h>

int main(void){
  char a[100]={0};
  int i=0,count=0,k=0;
 while(1){
    scanf("%c",&a[i]);
 if(a[i]=='.') //当条件成立直接跳出循环
    break;
 i++;// 这里的i 是为了确定一共输入多少个字符。
 }
 while(a[k]==' '){//跳过开头的所有空格
    k++;
 }
 if(a[k] == '.') // 当输入只有一个点的时候,直接return 不输出任何数值(包括0);
    return 0;
  for(int j=k;j<=i;j++){
    if(a[j]!=' '&&a[j]!='.'){ //说明下一个是字符,进行计数。
        count++;
    }
    else if(a[j]=='.'){//实现"."不计入字符数;
        printf("%d",count);
    }
    else if(a[j]==' '&&a[j+1]!=' '&&a[j+1]!='.'){//完成字符与字符之间空格的排除,
        printf("%d ",count);
        count=0;//置0,确保对下一位字符的计数。
    }
  }
    return 0;
}

总是可以学到很多。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-20
  • 2022-12-23
  • 2022-02-08
  • 2021-08-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-04
  • 2021-11-03
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
相关资源
相似解决方案