TheLoner @ 2022-08-18 14:41:25
#include <stdio.h>
int main(){
char ju[40000];
int a=0,i,x='0',y=0,p=0,sum;
for (i=0;;i++){
scanf("%c",&ju[i]);
if (ju[i]!='\n'){
a++;
}else{
break;
}
}
sum=a*(a+1)-1;
for (i=a;i<sum;i++){
scanf("%c",&ju[i]);
}
printf("%d ",a);
for (i=0;i<sum;i++){
if(ju[i]==x){
y++;
}else if(ju[i]=='\n'||ju[i]=='\r'){
}else{
printf("%d",y);
if(i<sum-1){
printf(" ");
}
y=0;
x=ju[i];
i--;
}
}
return 0;
}
by Zsyxing @ 2022-08-18 14:46:01
@TheLoner
本地少输出了最后一个
by Zsyxing @ 2022-08-18 14:48:57
样例7 3 1 6 1 6 4 3 1 6 1 6 1 3 7
您本地输出的是7 3 1 6 1 6 4 3 1 6 1 6 1 3
少了最后一个
by TheLoner @ 2022-08-18 20:31:23
@Zsyxing
#include <stdio.h>
int main(){
char ju[40000];
int a=0,i,x='0',y=0,p=0,sum;
for (i=0;;i++){
scanf("%c",&ju[i]);
if (ju[i]!='\n'){
a++;
}else{
break;
}
}
sum=a*(a+1)-1;
for (i=a;i<sum;i++){
scanf("%c",&ju[i]);
}
printf("%d ",a);
for (i=0;i<sum;i++){
if(ju[i]==x){
y++;
}else if(ju[i]=='\n'||ju[i]=='\r'){
}else{
printf("%d",y);
if(i<sum-1){
printf(" ");
}
y=0;
x=ju[i];
i--;
}
}
if(y!=0){
printf("%d",y);
}
return 0;
}
这样就有最后一个了,但还是不行啊,大佬
by Zsyxing @ 2022-08-18 20:36:13
你这调了就更不对了现在变成了8 3 1 6 1 6 4 3 1 6 1 6 1 3 7 11了
by Zsyxing @ 2022-08-18 20:43:58
@TheLoner
if(ju[i]==x){
y++;
}else if(ju[i]=='\n'||ju[i]=='\r'){
}else{
printf("%d",y);
if(i<sum-1){
printf(" ");
}
这里的
else if(ju[i]=='\n'||ju[i]=='\r'){
}
是空的应该错了
by TheLoner @ 2022-08-18 20:48:09
@Zsyxing 啊?我用的Dev,就是对的啊。
by Zsyxing @ 2022-08-18 20:59:03
else if(ju[i]=='\n'||ju[i]=='\r'){ } 这里面的{ }没写东西应该加东西进去输出或者别的东西
by TheLoner @ 2022-08-18 21:08:29
@Zsyxing 那是用来读到回车时,跳过用的。
by Zsyxing @ 2022-08-18 21:12:52
那我也不太清楚了
by TheLoner @ 2022-08-18 21:17:01
@Zsyxing 哦哦,好的,谢谢