11-2

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<ctype.h>

#define SIZE 20

struct node
{
	int row;//行             //编完发现没用上。。。
	int col;//列             //编完发现没用上。。。
	int val;//值          
}p1[SIZE][SIZE],p2[SIZE][SIZE];

void Exchange(node p1[SIZE][SIZE],node p2[SIZE][SIZE],int m,int n,int u,int v,int x,int y)
{            //    被替换矩阵p1     替换矩阵p2        p1的行   列;p2的行   列;替换位置行 列
	int i,j,p,q;//i,j用于表示p1的行列坐标;p,q用于表示p2的行列坐标
	if(x<=m&&y<=n)
	{
		for(i=x-1,p=0 ; i<x-1+u&&p<u ; i++,p++)//i=2 i<4 i++
		{
			for(j=y-1,q=0 ; j<y-1+v&&q<v ; j++,q++)
			{
				p1[i][j].val=p2[p][q].val;//将替换部分从替换位置开始替换
			}
		}
	}
//	printf("Exchange have done!\n");
}
void Print(node p1[SIZE][SIZE],int m,int n)
{
	int i,j;
	for(i=0 ; i<m ; i++)
		{
			for(j=0 ; j<n ; j++)
			{
				printf("%d ",p1[i][j].val);  //输出
			}
			printf("\n");
		}
}

int main()
{
	int i,j;//循环用
	
	int m,n;//p1的行 列数
//	int matrix[][];
	while(scanf("%d%d",&m,&n)!=EOF)//输入
	{
		for(i=0;i<m;i++)
		{
			for(j=0;j<n;j++)
			{
				scanf("%d",&p1[i][j].val);//输入p1
				p1[i][j].row=i+1;         //没有什么卵用。。。
				p1[i][j].col=j+1;         //没有什么卵用。。。
			}
		}

		int u,v;//p2的行 列数
		scanf("%d%d",&u,&v);
		for(i=0;i<u;i++)
		{
			for(j=0;j<v;j++)
			{
				scanf("%d",&p2[i][j].val);//输入p2
				p2[i][j].row=i+1;
				p2[i][j].col=j+1;
			}
		}

		int x,y;//替换位置
		scanf("%d%d",&x,&y);

		Exchange(p1,p2,m,n,u,v,x,y);

		Print(p1,m,n);
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值