求助,试了样例答案没有最后的7,咋回事

P1320 压缩技术(续集版)

RanHT @ 2022-12-21 20:17:44

#include<stdio.h>
#include<math.h>
#define m 40001
int main()
{
    int b=0,c=0,i=0,j=0,s[m]={0},x,y=0,k=0,v=0,l=0;
    char a;
    while(scanf("%c",&a)!=EOF)
    {
        if(a=='0'||a=='1')
        {
        int l=a-'0';
        if(l==b)
        {
            k++;v++;
        }
        else
        {
            i++;
            s[i]=k;
            k=1;
            v++;
            if(b==0)
            b=1;
            else{b=0;
            }
        }
        }
        else{
        }
    }
    s[0]=sqrt(v);
    for(j=0;j<=i;j++)
    {
        printf("%d",s[j]);
        if(j!=i)
        printf(" ");
    }
    return 0;   
}

by tbdsh @ 2022-12-21 20:25:08

@RanHT

这是您的代码执行逻辑:

输入 -> 判断是否与上一个数相同 (是:v++,不是:记录)-> 输入

但是,在输入完最后一个数时,没有下一个数能让您的程序进行判断+记录。所以,您需要再手动记录一次


by RanHT @ 2022-12-21 20:41:12

@tianbiandeshenghuo11 噢噢,原来如此,谢谢


|