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 噢噢,原来如此,谢谢