浙江大学ACM题目 2478

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:47:28
#include<stdio.h>
int main()
{
int a,c=-1;
char b[100];
int i,j;

scanf("%d",&a);
getchar();
for(i=0;i<a;i++)
{
scanf("%s",&b);

for(j=0;j<strlen(b);j++)
{
if(b[j]==b[j+1])
{}
else
{
if(j-c==1)
{
printf("%c",b[j]);
}
else
{
printf("%c%d",b[j],j-c);
}
c=j;
}
}
c=-1;
}
return 0;
}
错哪里

我帮你修改了下,提交通过了,代码如下:
#include<stdio.h>
int main()
{
int a,c=-1;
char b[100];
int i,j;

scanf("%d",&a);
getchar();
for(i=0;i<a;i++)
{
scanf("%s",&b); //这里读入的是字符串,所以应该改成scanf("%s",b);

for(j=0;j<strlen(b);j++)
{
if(b[j]==b[j+1])
{}
else
{
if(j-c==1)
{
printf("%c",b[j]);
}
else
{
printf("%c%d",b[j],j-c);
//这里输出的顺序和sample里的不一样,应该改为printf("%d%c",j-c,b[j]);
}
c=j;
}
}
c=-1;
//每句数据之后都有个回车,所以这里应该加句printf("\n");
}
return 0;
}