欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C】对三个数字进行降序排列

程序员文章站 2022-03-03 16:09:54
...

1.原理:首先用一个一维数组来存放输入的数字,其次对输入的数字进行冒泡排序,最后依次输出数组的元素即就是降序排列的结果。(ps:排序算法之冒泡排序)

2.源代码

/*
* Copyright (c) 2018, code farmer from sust
* All rights reserved.
*
* 文件名称:SortThree.c
* 功能:对三个数字按照降序排序
*
* 当前版本:V1.0
* 作者:sustzc
* 完成日期:2018年3月21日18:02:21
*/

# include <stdio.h>
# include <stdlib.h>

# define ARRAY_LEN 3

/*
*	函数名称:BubbleSort
*
*	函数功能:冒泡排序(降序)
*
*	入口参数:a, len
*
*	出口参数:无
*
*	返回类型:void
*/
void BubbleSort(int * a, int len)
{
	int i = 0;
	int j = 0;
	int temp = 0;

	if ((NULL != a) && (len > 0))
	{
		for (i=0; i<len-1; i++)
		{
			for (j=0; j<len-i-1; j++)
			{
				if (a[j] < a[j+1])
				{
					temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
				else
				{
					;
				}
			}
		}
	}
	else
	{
		exit(1);
	}

	return;
}

/*
*	函数名称:Input
*
*	函数功能:输入数据
*
*	入口参数:pNum, length
*
*	出口参数:无
*
*	返回类型:void
*/

void Input(int * pNum, int length)
{
	int k = 0;

	if ((NULL != pNum) && (length > 0))
	{
		for (k=0; k<length; k++)
		{
			printf("请输入第%d个数字:", k+1);
			scanf("%d", &pNum[k]);
		}
	}
	else
	{
		exit(1);
	}
	
	return;
}

/*
*	函数名称:Output
*
*	函数功能:输出结果
*
*	入口参数:p, le
*
*	出口参数:无
*
*	返回类型:void
*/

void Output(int * p, int le)
{
	int m = 0;

	if ((NULL != p) && (le > 0))
	{
		for (m=0; m<le; m++)
		{
			printf("%d ", p[m]);
		}
	}
	else
	{
		exit(1);
	}

	printf("\n");

	return;
}

int main(void)
{
	int arr[ARRAY_LEN] = {0};
	
	Input(arr, ARRAY_LEN);

	printf("排序之前的数字分别是:\n");
	Output(arr, ARRAY_LEN);

	printf("排序之后的数字分别是:\n");
	BubbleSort(arr, ARRAY_LEN);
	Output(arr, ARRAY_LEN);

	system("pause");

	return 0;
}

3.输出结果

【C】对三个数字进行降序排列

相关标签: 冒泡排序