difficultlong @ 2024-09-01 07:24:55
我快没了,到底怎样是对的!
#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+len-1;i++){
scanf("%c",&ch);
if(ch=='\n'){
continue;
}
p++;
s[p]=ch;
}
printf("%d ",len);
for(int i=1;i<=len*len;i++){
if(s[i]==s[i+1]){
sum++;
}
else{
printf("%d ",sum);
sum=1;
}
}
return 0;
}
求大佬解答,希望大佬一次性,把我所有的错误说出来
by dmc0702 @ 2024-09-01 08:18:20
@bianchengzai 在 printf("%d ",len);
后加一句 if(s[1]=='0') printf("0 ");
因为第一个数表示连续有几个0,你这段代码如果开头是1的话就直接输出有几个连续的1了,要加特判。
求关QAQ
by difficultlong @ 2024-09-01 10:07:25
@dmc0702 感谢,已关注哦!
by difficultlong @ 2024-09-01 10:12:29
@dmc0702 呜呜,我好像废了,到底怎么做!!!我又又叒错了,救命!!!到底怎么回事
by dmc0702 @ 2024-09-01 12:20:44
@bianchengzai
直接加上去就能AC了呀?
#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+len-1;i++){
scanf("%c",&ch);
if(ch=='\n'){
continue;
}
p++;
s[p]=ch;
}
printf("%d ",len);
if(s[1]!='0')
printf("0 ");
for(int i=1;i<=len*len;i++){
if(s[i]==s[i+1]){
sum++;
}
else{
printf("%d ",sum);
sum=1;
}
}
return 0;
};