请大神改改我的代码,不知道为什么输出总是0
答案:2 悬赏:30 手机版
解决时间 2021-11-18 04:59
- 提问者网友:人生佛魔见
- 2021-11-17 09:16
请大神改改我的代码,不知道为什么输出总是0
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-11-17 09:50
这里你有两个地方定义了k,一个是在开始的地方,还有一个是循环的变量,这有点混乱啊。追问只是用了一下k,前后都是为了计数。。
大神有空帮我看看追答第二个循环中的k是局部变量,把for(int k = 0; k 然后第一层循环j++之后重新初始化一下i,里面的if判断加上i 修改后代码如下,修改位置代码中注释给出:
#include
#include
char a[10000],b[1000000];
int main()
{
int t;
int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
////////////////////////////////
//...省略
////////////////////////////////
// for(int i=0;i // printf("%dff
",v[i]);
int j=0;
int num=0;
//printf ("%d
", len3);
for(int i=v[j];j {
for(k=0;k {
if(i < len2 && a[k]==b[i])/////////////////////
i++;
else
break ;
}
//printf("%d sss
",k);
if(k==len1)num++;///////////////////////////
}
printf("%d
",num);
}
return 0;
}
大神有空帮我看看追答第二个循环中的k是局部变量,把for(int k = 0; k
#include
#include
char a[10000],b[1000000];
int main()
{
int t;
int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
////////////////////////////////
//...省略
////////////////////////////////
// for(int i=0;i
",v[i]);
int j=0;
int num=0;
//printf ("%d
", len3);
for(int i=v[j];j
for(k=0;k
if(i < len2 && a[k]==b[i])/////////////////////
i++;
else
break ;
}
//printf("%d sss
",k);
if(k==len1)num++;///////////////////////////
}
printf("%d
",num);
}
return 0;
}
全部回答
- 1楼网友:傲气稳了全场
- 2021-11-17 10:32
#include
#include
char a[10000],b[1000000];
int main()
{
int t;int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
scanf("%s",b);
int len1=strlen(a);
int len2=strlen(b);
char c=a[0];
for(int i=0;i
if(b[i]==c)
{
v[k]=i;k++;
}
int len3=k;
// for(int i=0;i
// printf("%dff ",v[i]);
int j=0;int num=0;
for(int i=v[j];j
{
for(k=0;k
{
if(a[k]==b[i])
i++;
else
break ;
}
printf("%dsss ",k);
if(k==len1+1)num++;
}
printf("%d ",num);
}
return 0;
}追问我吧k改成z了,还是不行呢,,大神咋改啊追答不是帮你改了么,直接把for循环里的k前面的int去掉看看追问还是一样的啊,结果永远是0.。追答#include
#include
char a[10000],b[1000000];
int main()
{
int t;int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
scanf("%s",b);
int len1=strlen(a);
int len2=strlen(b);
char c=a[0];
for(int i=0;i
if(b[i]==c)
{
v[k]=i;k++;
}
int len3=k;
// for(int i=0;i
// printf("%dff ",v[i]);
int j=0;int num=0;
for(int i=v[j];j
{
for(k=0;k
{
if(a[k]==b[i])
i++;
else
break ;
}
printf("%dsss ",k);
if(k==len1+1)num++;//len1应该不需要+1吧
}
printf("%d ",num);
}
return 0;
}
#include
char a[10000],b[1000000];
int main()
{
int t;int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
scanf("%s",b);
int len1=strlen(a);
int len2=strlen(b);
char c=a[0];
for(int i=0;i
if(b[i]==c)
{
v[k]=i;k++;
}
int len3=k;
// for(int i=0;i
// printf("%dff ",v[i]);
int j=0;int num=0;
for(int i=v[j];j
{
for(k=0;k
{
if(a[k]==b[i])
i++;
else
break ;
}
printf("%dsss ",k);
if(k==len1+1)num++;
}
printf("%d ",num);
}
return 0;
}追问我吧k改成z了,还是不行呢,,大神咋改啊追答不是帮你改了么,直接把for循环里的k前面的int去掉看看追问还是一样的啊,结果永远是0.。追答#include
#include
char a[10000],b[1000000];
int main()
{
int t;int k=0;
int v[100];
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
scanf("%s",b);
int len1=strlen(a);
int len2=strlen(b);
char c=a[0];
for(int i=0;i
if(b[i]==c)
{
v[k]=i;k++;
}
int len3=k;
// for(int i=0;i
// printf("%dff ",v[i]);
int j=0;int num=0;
for(int i=v[j];j
{
for(k=0;k
{
if(a[k]==b[i])
i++;
else
break ;
}
printf("%dsss ",k);
if(k==len1+1)num++;//len1应该不需要+1吧
}
printf("%d ",num);
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯