文章

6

粉丝

84

获赞

0

访问

3.6k

头像
统计单词 题解:有没有大佬看看,一直是百分之%80,求求了
P1394 华中科技大学
发布于2024年3月14日 20:33
阅读数 668

#include<stdio.h>
#include<stdlib.h>
#include<string.h>



int letter(char c){           //判断是否是字母
    if( c>='a' && c<='z' ){
        return 1;
    }
    if( c>='A' && c<='Z' ){
        return 2;
    }
    else
        return 0;
}


int main(){
    char s[105];
    while( gets(s)!=NULL ){
        int count[200]={0};
        int rnt=0,temp=0,number=0;
        int len=strlen(s);

        for(int i=0;i<len;i++){
           
           if(letter(s[i])){      //扫描到字母,统计信标+1
               rnt++;
           }
           if(!letter(s[i])){   //扫描到非字母时,把前面统计的字母数存入数组,并且重置统计信标
              count[temp++]=rnt;
              number++;
              rnt=0;
           }
       }

       for(int i=0;i<number;i++){
           if(count>0)
           printf("%d ",count[i]);
       }
        printf("\n");

    }
}
登录查看完整内容


登录后发布评论

1 条评论
张会老儿
2024年3月14日 20:39

解决了,没有考虑连续空格的情况,把扫到字母的那个if里面的判断写成

if(!letter(s[i])&& letter(s[i-1]))就可以了

赞(0)