为什么90分,有一个过不了???

B2120 单词的长度

sam__ @ 2023-01-02 19:32:20

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char a[1001],b[1001];
    int i,j=0;
    int sum=0;
    gets(a);
    for(i=0; i<strlen(a); i++)
    {
        if(a[i]!=' ') sum++;
        else
        {
            if(sum>=10&&sum<100&&sum!=0)
            {
                b[j]=sum/10+'0';
                b[j+1]=sum%10+'0';
                b[j+2]=',';
                j+=3;
                sum=0;
            }
            if(sum>=100&&sum!=0)
            {
                b[j]=sum/100+'0';
                b[j+1]=(sum/10)%10+'0';
                b[j+2]=sum%10+'0';
                b[j+3]=',';
                j+=4;
                sum=0;
            }
            if(sum<10&&sum>0&&sum!=0)
            {
                b[j]=sum+'0';
                b[j+1]=',';
                j+=2;
                sum=0;
            }
        }

    }
    printf("%s%d",b,sum);
    return 0;
}

by zzx001 @ 2023-01-12 12:28:48

这道题的做法并不困难,只需要循环输入再判断(可以用while循环),输出时判断是否能是最后一个单词的长度,如果是,则不输出',',如果不是,则输出。

AC代码

#include<bits/stdc++.h>

using namespace std;

int main(){

    char d[2005];
    int a[1005],i=0,c=0;
    while(cin>>d){
        c++;
        int len=strlen(d);
        a[i]=len;
        if(c==1)
            cout<<a[i];
        if(c>1)
            printf(",%d",a[i]);
    }
    return 0;
}

我这里是判断是否是第个单词


by zzx001 @ 2023-01-12 12:30:21

真不用这么麻烦


by sam__ @ 2023-01-15 01:39:11

@zzx001 谢谢了!


|