1 条题解

  • 0
    @ 2024-12-24 9:59:19

    C :

    #include<stdio.h>
    void Convert(int arr[5][5],int a,int b,int x,int y)
    {
    	int i,j;
    	if(a==1&&b==2)
    	{
    		int tmp[2][2];
    		for(i=0;i<2;i++)
    			for(j=0;j<2;j++)
    				tmp[i][j]=arr[x-j][y+i-1];
    		for(i=0;i<2;i++)
                for(j=0;j<2;j++)
    				arr[x+i-1][y+j-1]=tmp[i][j];
        }
    	if(a==1&&b==3)
    	{
    		int tmp[3][3];
    		for(i=0;i<3;i++)
    			for(j=0;j<3;j++)
    				tmp[i][j]=arr[x+1-j][y+i-1];
    		for(i=0;i<3;i++)
                for(j=0;j<3;j++)
    				arr[x+i-1][y+j-1]=tmp[i][j];
    	}
    	if(a==2&&b==2)
    	{
    		int tmp[2][2];
    		for(i=0;i<2;i++)
    			for(j=0;j<2;j++)
    				tmp[i][j]=arr[x+j-1][y-i];
    		for(i=0;i<2;i++)
                for(j=0;j<2;j++)
    				arr[x+i-1][y+j-1]=tmp[i][j];
    	}
    	if(a==2&&b==3)
    	{
    		int tmp[3][3];
    		for(i=0;i<3;i++)
    			for(j=0;j<3;j++)
    				tmp[i][j]=arr[x+j-1][y+1-i];
    		for(i=0;i<3;i++)
                for(j=0;j<3;j++)
    				arr[x+i-1][y+j-1]=tmp[i][j];
    	}
    }
    int main()
    {
    	int arr[5][5];
    	int i,j;
    	while(scanf("%d%d%d%d%d",&arr[0][0],&arr[0][1],&arr[0][2],&arr[0][3],&arr[0][4])!=EOF)
    	{
    		for(i=1;i<5;i++)
    			for(j=0;j<5;j++)
    				scanf("%d",&arr[i][j]);
    		int a,b,x,y;
    		scanf("%d%d%d%d",&a,&b,&x,&y);
    		Convert(arr,a,b,x,y);
    		for(i=0;i<5;i++)
    		{
    			for(j=0;j<5;j++)
    			{
    				if(j==4)
    					printf("%d",arr[i][j]);
    				else
    					printf("%d ",arr[i][j]);
    			}
    			printf("\n");
    		}
    	}
    	return 0;
    }
    
    

    C++ :

    #include <stdio.h>  
      
    int main()  
    {  
        // 所有数的数目   
        int  cnt[5][5]; 
         
          
        while(~scanf("%d%d%d%d%d",&cnt[0][0],&cnt[0][1],&cnt[0][2],&cnt[0][3],&cnt[0][4])){
              
              for(int i=1;i<5;i++)
               scanf("%d%d%d%d%d",&cnt[i][0],&cnt[i][1],&cnt[i][2],&cnt[i][3],&cnt[i][4]);
              
              int a,b,x,y;
              scanf("%d%d%d%d",&a,&b,&x,&y);
              
              int temp=0;
              if(a == 1 && b == 2){
                   temp= cnt[x-1][y-1];
                   cnt[x-1][y-1] = cnt[x][y-1];
                   cnt[x][y-1] = cnt[x][y];
                   cnt[x][y] = cnt[x-1][y];
                   cnt[x-1][y] = temp;
                   
                   }
              
              else if(a == 1 && b == 3){
                    temp= cnt[x-1][y-1];
                   cnt[x-1][y-1] = cnt[x+1][y-1];
                   cnt[x+1][y-1] = cnt[x+1][y+1];
                   cnt[x+1][y+1] = cnt[x-1][y+1];
                   cnt[x-1][y+1] = temp;
                    temp= cnt[x-1][y];
                   cnt[x-1][y] = cnt[x][y-1];
                   cnt[x][y-1] = cnt[x+1][y];
                   cnt[x+1][y] = cnt[x][y+1];
                   cnt[x][y+1] = temp;
                   }   
              else if(a == 2 && b == 2){
                   temp= cnt[x-1][y-1];
                   cnt[x-1][y-1] = cnt[x-1][y];
                   cnt[x-1][y] = cnt[x][y];
                   cnt[x][y] = cnt[x][y-1];
                   cnt[x][y-1] = temp;
                   }       
              else if(a == 2 && b == 3){
                                   
                   temp= cnt[x-1][y-1];
                   cnt[x-1][y-1] = cnt[x-1][y+1];
                   cnt[x-1][y+1] = cnt[x+1][y+1];
                   cnt[x+1][y+1] = cnt[x+1][y-1];
                   cnt[x+1][y-1] = temp;
                    temp= cnt[x-1][y];
                   cnt[x-1][y] = cnt[x][y+1];
                   cnt[x][y+1] = cnt[x+1][y];
                   cnt[x+1][y] = cnt[x][y-1];
                   cnt[x][y-1] = temp;            
              }
        for(int i=0;i<5;i++)
               printf("%d %d %d %d %d\n",cnt[i][0],cnt[i][1],cnt[i][2],cnt[i][3],cnt[i][4]);
               //我多么想和你再见一面,不再说从前,只是寒暄,陪你聊聊天
               //输出一定不要&,输入一定要& 
    }
                
    
          
        return 0;      
    }
    
    • 1

    信息

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