编写程序,定义一个带参的宏,以实现两个整数之间的交换,利用它将二维数组a和b的值进行交换,并打印出来

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:23:48
编写程序,定义一个带参的宏,以实现两个整数之间的交换,利用它将二维数组a和b的值进行交换,并打印出来

#include <stdio.h>
#define swap(a,b) {{(a)+=(b);}{(b)=(a)-(b);}{(a)=(a)-(b);}}/*定义了用于交换整数的宏*/

int n,m;//两个数组的行数、列数
int a[100][100],b[100][100];

main()
{
int i,j;
puts("输入二维数组的行数和列数");
scanf("%d%d",&n,&m);
puts("输入二维数组a的元素");
for (i=0;i<n;i++)
for (j=0;j<m;j++) scanf("%d",&a[i][j]);
puts("输入二维数组b的元素");
for (i=0;i<n;i++)
for (j=0;j<m;j++) scanf("%d",&b[i][j]);
puts("正在交换a和b...");
for (i=0;i<n;i++)
for (j=0;j<m;j++)
swap(a[i][j],b[i][j]);
puts("交换后的数组a:");
for (i=0;i<n;i++)
for (j=0;j<m;j++) printf("%d%c",a[i][j],j==m-1 ? '\n' : ' ');
puts("交换后的数组b:");
for (i=0;i<n;i++)
for (j=0;j<m;j++) printf("%d%c",b[i][j],j==m-1 ? '\n' : ' ');
}