样例是四组数据,但是我只输入三组数据就自动结束了,大佬帮忙看一看
查看原帖
样例是四组数据,但是我只输入三组数据就自动结束了,大佬帮忙看一看
1102188
maozutao楼主2023/11/21 03:51
#include <stdio.h>
#include <string.h>
int main(){
	int n1,n2,m[105],t[105],x,y,z,l,q,count=0,i,j,k;
	scanf("%d",&q);
    char s[10000];
	char a[105][105],b[105][10000];
	scanf("%s",s);	
	n1=strlen(s);
	for(i=0;i<q;i++){
		scanf("%d",&m[i]);
		switch(m[i]){
			case 1:
				scanf("%s",a[i]);
				n2=strlen(a[i]);
			    for(j=0;j<n2;j++){
				    s[j+n1]=a[i][j];
			    }
			    n1=strlen(s);
		    	for(l=0;l<n1;l++){
			    	b[i][l]=s[l];
			    }
			    break;		    
			case 2:
				scanf("%d %d",&x,&y);
				n1=strlen(s);			
		    	for(l=0,j=x;j<x+y;j++,l++){
			    	s[l]=s[j];				
		    	}
		    	for(j=l;j<n1;j++){
		    		s[j]='\0';
				}
		    	z=l;
		        n1=strlen(s);
	    		for(l=0;l<n1;l++){
		    		b[i][l]=s[l];
		    	}
				break;
			case 3:
		    	scanf("%d%s",&x,a[i]);
		    	if(z){
		    		n1=z;
				}else{
		    		n1=strlen(s);	
				}		    	
		    	n2=strlen(a[i]);
		    	for(j=x;j<n1;j++){
		    		s[j+n2]=s[j];
		    	}
		    	for(l=0,j=x;j<(n2+x);l++,j++){
		    		s[j]=a[i][l];
		    	}
	    		n1=strlen(s);
	    		for(l=0;l<n1;l++){
		    		b[i][l]=s[l];
		    	}
		    	break;
			case 4:
				scanf("%s",a[i]);
				n1=strlen(s);
			    n2=strlen(a[i]);
	        	for(l=0;l<n2;l++){
				    for(j=0;j<n1;j++){
		    			count=0;
		    			if(a[i][l]==s[j]){
	    					for(k=0;k<n2;k++){
	    						if(a[i][l+k]==s[j+k]){
		    						count++;
		    					}
		    				}					
		    			}
		    			if(count==n2){
						    t[i]=j;
		    				goto end;
		    			}
		    		}
		    	}
		    	t[i]=-1;
	    	end:
	    		break;
		}						
    }   
    for(i=0;i<q;i++){
    	if(m[i]==4){
    		printf("%d\n",t[i]);
		}else{
			printf("%s\n",b[i]);
		}   	
	}
	return 0;
}
2023/11/21 03:51
加载中...