Loading

基础编程练习 7-26 单词长度 (15 分)

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

#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;
}

总是可以学到很多。
posted @ 2019-04-20 16:13  以南为客  阅读(951)  评论(0)    收藏  举报