求助,为什么第5个测试点WA?
查看原帖
求助,为什么第5个测试点WA?
1520634
Henryonly楼主2024/11/23 23:14
#include<stdio.h>
#include<string.h>
int main()
{
    int status[100];
    int n,length;
    scanf("%d",&n);
    getchar();
    char cha[101];
    char package[101][101];
    scanf("%s",cha);
    length=strlen(cha);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&status[i]);
        if(status[i]==1)
        {
            char cha2[101];
            scanf("%s",cha2);
            strcat(cha,cha2);
            for(unsigned int t=0;t<sizeof(cha);t++)
            {
            	package[i][t]=cha[t];
            }
			length+=strlen(cha2);	
        }
        else if(status[i]==2)
        {
            int a,b;
            scanf("%d%d",&a,&b);
            for(int j=a;j<a+b;j++)
            {
				package[i][j-a]=cha[j];
            }
            for(int j=0;j<b;j++)
            {
				cha[j]=package[i][j];
			}
			cha[b]='\0';
			length=b;
        }
        else if(status[i]==3)
        {
            char cha1[101],cha2[101],insert[101];
            int num;
            scanf("%d",&num);
            scanf("%s",insert);
            for(int j=0;j<num;j++)
            {
                cha1[j]=cha[j];
            }
            if(num!=length)
            {
            	for(int j=num;j<length;j++)
            	{
                	cha2[j-num]=cha[j];
            	}
            	strcat(cha1,insert);
            	strcat(cha1,cha2);
            }
            else
            {
				strcat(cha1,insert);
			}
            for(unsigned int j=0;j<sizeof(cha1);j++)
            {
				cha[j]=cha1[j];
			}
            for(unsigned int t=0;t<sizeof(cha);t++)
			{
				package[i][t]=cha[t];
			}
			length+=strlen(insert);
        }
        else if(status[i]==4)
        {
            char cha0[101];
            scanf("%s",cha0);
            int notebook=0,count=0,middle=0;
            for(unsigned int j=0;j<strlen(cha)-strlen(cha0)+1;j++)
            {
                for(unsigned int m=0;m<strlen(cha0);m++)
                {
                    if(cha0[m]!=cha[m+j])
                    {
                        count=1;
                    }
                }
                if(count==0)
                {
					notebook=j;
					middle=1;
					break;
				}
				count=0;
            }
            if(middle!=0)
            {
            	package[i][0]=notebook+'0';
            }
    		else
    		{
				package[i][0]='-';
				package[i][1]='1';
			}
        }
    }
    for(int i=0;i<n;i++)
    {
		printf("%s\n",package[i]);
	}
    return 0;
}
2024/11/23 23:14
加载中...