1 条题解

  • 0
    @ 2024-12-24 9:54:35

    C :

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    typedef struct Node{
    	int n;
    	struct Node * next;
    }node,*LN;
    void print(LN list){
    	while(list){
    		printf("%d ",list->n);
    		list=list->next;
    	}
    }
    int main(){
    	LN list,p,t,q;
    	int x,n;
    	scanf("%d%d",&x,&n);
    	list=(LN)malloc(sizeof(node));
    	scanf("%d",&list->n);
    	p=list;
    	while(n>1){
    		t=(LN)malloc(sizeof(node));
    		scanf("%d",&t->n);
    		p->next=t;
    		p=t;
    		n--;
    	}
    	p->next=NULL;
    	p=list;
    	if(p==NULL || x<p->n){
    		printf("no\n");
    		printf("%d ",x);
    		print(list);
    		return 0;
    	}
    	if(p->n==x){
    		t=p->next;
    		list=t;
    		p->next=t->next;
    		t->next=p;
    		print(list);
    		return 0;
    	}
    	q=p;
    	while(p){
    		if(p->n==x){
    			printf("%d\n",x);
    			t=p->next;
    			if(t==NULL)break;
    			q->next=t;
    			p->next=t->next;
    			t->next=p;
    			break;
    		}
    		if(p->n>x){
    			/*t=(LN)malloc(sizeof(node));
    			t->n=x;
    			q->next=t;
    			t->next=p;*/
    			break;
    		}
    		q=p;
    		p=p->next;
    		continue;
    	}
    	if(p==NULL || p->n!=x){
    		printf("no\n");
    		t=(LN)malloc(sizeof(node));
    		t->n=x;
    		q->next=t;
    		t->next=p;
    	}
    	print(list);
    	return 0;
    }
    

    C++ :

    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    int a[10002];
    int main(){
    	//freopen("cin.txt","r",stdin);
       int x;
       while(scanf("%d",&x)!=EOF){
         int n,i;
    	 scanf("%d",&n);
    	 for(i=0;i<n;i++)
    		 scanf("%d",&a[i]);
         int* upperPos=upper_bound(a,a+n,x);
    	  int len=upperPos-a;
    	  //printf("len=%d\n",len);
    	  if(a[len-1]==x)
    	  {
    		  printf("%d\n",len+1);
    		  int temp=a[len-1];
    		       a[len-1]=a[len];
    			   a[len]=temp;
    			   for(i=0;i<n;i++)
    		  {
    				  printf("%d ",a[i]);
    		  }
    		  printf("\n");
    	  }
    	  else
    	  {
    		  printf("no\n");
               for(i=n-1;i>=len;i--)
    			  a[i+1]=a[i];
    		   a[len]=x;
    		  for(i=0;i<n+1;i++)
    		  {
    			  
    				  printf("%d ",a[i]);
    		  }
    		  printf("\n");
    	  }
       }
       return 0;
    }
    
    • 1

    信息

    ID
    1309
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者