码迷,mamicode.com
首页 > 编程语言 > 详细

二维数组的排序

时间:2020-06-05 21:21:35      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:打印   知识点   知识   存储   swa   数组   自定义   方式   class   

题目

/* 实验内容:
 输入是16个整数,存放到4*4的二维数组中,用冒泡法按从大到小的顺序进行排序,
 然后输出。要求输入、排序、输出各个环节都要用到指向数组的指针,
 其中排序环节交换数据要求用自定义的swap(int *p1,int *p2)函数实现。*/

切入点

知识点:其实n维数组都是以一位数组的方式存储的,所以我们就可以用一维数组的方法法解决n维数组的排序问题

解决方案

#include <stdio.h>

void swap(int *p1,int *p2);

int main()
{

	int num[4][4];
	int (*p)[4]=num;
	int col,row;
	

	//输入
	for(row=0;row<4;row++)
	{
		for(col=0;col<4;col++)
		{
			scanf("%d",(*(p+row)+col));
		}
	}

	
	/*
	for(int i=0;i<16;i++)
	{
		printf("%d ",*(*num+i));
	}*/


	//打印输入
	printf("输入结果:\n");
	for( row=0;row<4;row++)
	{
		for(int col=0;col<4;col++)
		{
			printf("%d ",*(*(num+row)+col) );
		}
		printf("\n");
	}
	

	//排序
	for(int i=0;i<15;i++)
		for(int j=0;j<15-i;j++)
		{
			// < 则是从大到小
			if( *(*num+j) > *(*num+j+1))
			swap((*num+j),(*num+j+1));
		}


	printf("输出结果:\n");
	for( row=0;row<4;row++)
	{
		for(int col=0;col<4;col++)
		{
			printf("%d ",*(*(num+row)+col) );
		}
		printf("\n");
	}
	
	return 0;
}

void swap(int *p1,int *p2)
{
	int p;
	p = *p1;
	*p1 = *p2;
	*p2 = p;
}

二维数组的排序

标签:打印   知识点   知识   存储   swa   数组   自定义   方式   class   

原文地址:https://www.cnblogs.com/zerohua/p/13052134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!