pta 7-4 单词长度 翁恺 浙江大学

好难的题,萌新调了一整天(真的,码字的时候都11点半了)

总结下坑点(会放码的,别急):

1.正常打模拟结构,可以拿10pt。

2.rt,重复空格的处理,写好了到12pt。

3.作者在测试里无意自己打了头尾空格出问题,意识到有坑在首尾的空格。(其实第二个测试点就在卡尾巴的空格,即(文本)(空格)(句号),不处理会多一个0),拿到14pt。

4.最最最坑的一点(第1个测试点)一直打句号,要求不能输出。(笔者误以为是文本里面有换行符,改了半天,发现测试点一没有一点动静QaQ)

//其实就是c语言的码啦,没找到分类orz
#include <stdio.h>
int i,ans,flag;
char c[10010];

int main()
{
    //轻松输入,不解释
    while(1)
    {
        i++;
        scanf("%c",&c[i]);
        if(c[i]=='.') break;
    }
    int Len_c = i;

    //最后的希望,全是.但不输出
    for(i=1;i<=Len_c;i++){
        if(c[i]!='.') flag=1;
    }
    if(flag==0) return 0;
    //检测头尾空格,并标记,进14pt
    i=1;
    while(c[i]==' '){
        c[i]='#';
        i++;
    }
    i=Len_c-1;
    while(c[i]==' '){
        c[i]='#';
        i--;
    }

    //12pt码,基本框架,可以过重复空格
    for(i=1;i<=Len_c;i++){

        if(c[i]=='#'){
            continue;
        }
        if(c[i]=='.'){
            printf("%d",ans);
            break;
        }
        if(c[i]==' '){
            if(c[i-1]==' ') continue;
            else{
                printf("%d ",ans);
                ans=0;
            }
        }
        else{
            ans++;
        }
    }
}

嘿嘿,收工!

求赞,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值