C/C++ 二维数组做为函数参数(int类型举例)

参考:C/C++指针与二维数组与函数形参(int类型举例)

#include<stdio.h>

#define M 2
#define N 2
/*
	功能:数据输入方法
	参数1:目标数组
	参数2:数组长度
	返回值:void
*/
//void inPut(int arr[][N],int m,int n)
void inPut(int (*arr)[N],int m,int n)
{
	int indexM=0,indexN=0;
	printf("请输入一个[%d]*[%d]的二维数组\n",m,n);
	for(indexM=0;indexM<m;indexM++)
	{
		for(indexN=0;indexN<n;indexN++)
		{
			printf("请输入arr[%d][%d] = ",indexM,indexN);
			scanf("%d",&arr[indexM][indexN]);
		}
	}
}
/*
	功能:数组数据显示方法
	参数1:目标数组
	参数2:数组长度
	返回值:void
*/
void outPut(int arr[][N],int m,int n)
{
	int indexM=0,indexN=0;
	printf("请输入一个[%d]*[%d]的二维数组\n",m,n);
	for(indexM=0;indexM<m;indexM++)
	{
		for(indexN=0;indexN<n;indexN++)
		{
			printf("arr[%d][%d] = %d\n",indexM,indexN,arr[indexM][indexN]);
		}
	}	
}

/*
	功能:二维数组排序
	返回值:void
*/

void arrSortUp(int arr[][N],int m,int n)
{
	int k=0,j=0;
	int *p0;
	p0=arr[0];
	for(k=0;k<m*n-1;k++)
	{
		for(j=0;j<m*n-k-1;j++)
		{
			if(*(p0+j)>*(p0+j+1))
			{
				*(p0+j) = *(p0+j)+*(p0+j+1);
				*(p0+j+1) = *(p0+j)-*(p0+j+1);
				*(p0+j) = *(p0+j)-*(p0+j+1);
			}			
		}
	}
}



int main(void)
{
    int arr2DInt1[M][N];

    inPut(arr2DInt1,M,N);

outPut(arr2DInt1,M,N);

arrSortUp(arr2DInt1,M,N);


    return 0;
}

猜你喜欢

转载自blog.csdn.net/yuupengsun/article/details/114240344