永发信息网

请大神改改我的代码,不知道为什么输出总是0

答案:2  悬赏:30  手机版
解决时间 2021-11-18 04:59
请大神改改我的代码,不知道为什么输出总是0
最佳答案
这里你有两个地方定义了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;
}
全部回答
#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;
 
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么叫落水鬼
赢在自重的作文600字
描写“早知如此何必当初”的诗句
老公一晚上没让我消停
火柴数学游题13-7=12答案
去广州走亲戚,带点什么特产去
雅致是什么意思? 优雅又是什么意思? 雅正又
左一次右一次的请求弄成成语是什么
有些烦恼不是我们自己造成的,但是我们却无法
680/(8*17)的简便方法
企鹅在哪里穿唐装与游客互动?
我今天的相册音乐相册怎么找不到了在哪里
脑白金的主要成分是什么?
电阻两端的交流电压与流过电阻的电流相位相同
真的20000毫安的移动电源一般多重
推荐资讯
什么是电源大D是不是大4针的接口?
杜甫《登高》这首诗运用了哪些意象,营造了怎
lol刚出安妮的时候是s。己
属牛白羊座男和属虎处女座有爱情火花吗
罗山县人民检察院未成年人帮扶教育基地地址在
学校图书馆共有700本书有7个书架每个书架有五
338.4除0.72竖式计算
为什么不要轻易相信同事,不要轻易将自己的不
年逾古( )
株洲有什么山好爬
嘀嗒拼车退出后还发推送通知
求fate里红a的图片
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?