c 0 1考虑了 为什么过不了

P1320 压缩技术(续集版)

qqqqewdwqew @ 2022-10-17 18:45:17

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    void shan(char a[]){
        int i=0;
        for(int j=0;a[j]!='\0';j++){
            if(a[j]!=' '){
                a[i]=a[j];
                i++;
            }
        }
        a[i]='\0';
    }
        int main (){
        char a[40000];
        gets(a);
        shan(a);
        int len=strlen(a);
        for(int i=0;i<len-1;i++){
            char A[200];
            gets(A);
            shan(a);
            strcat(a,A);
        }
        printf("%d ",len);
        int x=0,y=0,X=1;
        for(int i=0;a[i]!='\0';i++){
            if(a[i]=='0'){//计数 0 输出 1
                x++;
                if(y!=0&&X==0){
                    printf("%d ",y);
                    X=1;
                    y=0;
                }
                else if(y!=0&&X==1){
                    printf("0 %d ",y);
                    y=0;
                }
            }
            if(a[i]=='1'){//计数1 输出 0
                y++;
                if(x!=0){
                    printf("%d ",x);
                    x=0;
                    X=0;
                }
            }
        }
        if(x!=0) printf("%d",x);
        else if(y!=0) printf("%d",y);
    }//7 3 1 6 1 6 4 3 1 6 1 6 1 3 7

by qqqqewdwqew @ 2022-10-25 13:52:43

解决了


|