我已经发了无数次帖子,但是有没有人把我真正的错误说出来,一定要说详细点,我是萌新

P1320 压缩技术(续集版)

difficultlong @ 2024-09-01 10:18:53

#include<bits/stdc++.h>
using namespace std;
char s1[201],ch;
int sum=1;
char s[40001];
int main(){
    scanf("%s",s1+1);
    int len=strlen(s1+1);
    for(int i=1;i<=len;i++){
        s[i]=s1[i];
    }
    int p=len;
    for(int i=len;i<=len*len+6;i++){
        scanf("%c",&ch);
        if(ch=='\n'){
            continue;
        }
        p++;
        s[p]=ch;
    }
    printf("%d ",len);
    for(int i=1;i<=len*len-1;i++){
        if(s[i]==s[i+1]){
            sum++;
        }
        else{
            printf("%d ",sum);
            sum=1;
        }
    }
    printf("%d",sum);
    return 0;
}

求大佬指出错误,难道真的没有人知道我的错误吗(全部错误)


by iqiqiqiqiqiqiqiq @ 2024-09-01 10:27:03

scanf能填表达式么?s1+1怎么输入


by lgvc @ 2024-09-01 10:31:52

第一个,如果第一个字符是 1,你要输出一个 0。然后有 len 个换行,len^2+6 不够,要开成 len^2+len


by lgvc @ 2024-09-01 10:32:10

建议后面也用 %s 读入


by liuhaoyan0323 @ 2024-09-01 10:32:54

你理解错题意了,交替输出0,1个数,不是输出连续字符个数。 @bianchengzai


by liuhaoyan0323 @ 2024-09-01 10:34:33

具体来说对于数据:

11
11

你应该输出

2 0 4

而不是

2 4

by _8008008 @ 2024-09-01 10:36:32

@iqiqiqiqiqiqiqiq @iqiqiqiqiqiqiqiq scanf可以这样输入,这样传入的是地址


by pigeonteam @ 2024-09-01 10:36:32

@iqiqiqiqiqiqiqiq s1+1是一个字符数组指针


by liuhaoyan0323 @ 2024-09-01 10:39:42

@iqiqiqiqiqiqiqiq @lgvc @_8008008 @pigeonteam @bianchengzai
综合上述错误,您的代码可以改为:

#include<bits/stdc++.h>
using namespace std;
char s1[2001],ch;
int sum=1;
char s[40001];
int main(){
    scanf("%s",s1+1);
    int len=strlen(s1+1);
    for(int i=1;i<=len;i++){
        s[i]=s1[i];
    }
    int p=len;
    for(int i=len;i<=len*len+len;i++){
        scanf("%c",&ch);
        if(ch=='\n'){
            continue;
        }
        s[++p]=ch;
    }
    printf("%d ",len);
    if(s[1]=='1')printf("0 ");
    for(int i=1;i<=len*len-1;i++){
        if(s[i]==s[i+1]){
            sum++;
        }
        else{
            printf("%d ",sum);
            sum=1;
        }
    }
    printf("%d",sum);
    return 0;
}

rt


by iqiqiqiqiqiqiqiq @ 2024-09-01 10:50:19

@pigeonteam 我知道,但是%s?意思是空开开头是吗?要不用字符串string吧,可以直接加


by gavinliu266 @ 2024-09-01 11:06:36

不懂不要乱回 @iqiqiqiqiqiqiqiq

可以自行百度。


| 下一页