hql123 @ 2020-05-11 20:02:44
下面是代码:
#include <stdio.h>
#include <string.h>
int main()
{
char q[250],p[4500];
int i,j,k,l;
int n,count=1;
scanf("%s",&q);
n=strlen(q);
strcat(p,q);
for(i=1;i<n;i++)
{
scanf("%s",&q);
strcat(p,q);
}
printf("%d ",n);
for(i=0;i<strlen(p);i++)
{
if(p[i]==p[i+1])
{
count++;
}
else
{
printf("%d ",count);
count=1;
}
}
return 0;
}
又是跟着题解思路手打翻车的一天
(๑ १д१)
by Steven__Chen @ 2020-05-11 20:04:47
@hql123 别忘了在某些奇妙的地方加上return 0;
by Steven__Chen @ 2020-05-11 20:06:30
或是for循环边界的问题
by hql123 @ 2020-05-11 20:14:30
@Steven__Chen
运行结果是这样7 1 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 7
for边界什么还是不太明白(觉得边界应该在最后面多出来,不明白它为什么在前面多出来)
by Sun_god @ 2020-07-17 15:31:34
只有当p[i]==p[i+1]不满足的时候才会输出count的结果,肯定是这个地方的问题了,至于运行和调试的结果不一样,您看字符数组里进去什么别的字符了么。 这个问题解决了么,这个问题解决掉过了么?