镜缘浮影 小人本住在 苏州的城外 家里有屋又有田 生活乐无边

那些年我们一起忘掉的C (六).数值排序

2016-11-21
wilmosfang
c
原文地址 http://soft.dog/2016/11/21/c-basic-06/

前言

用循环嵌套来解决排序的问题在计算机中经常用到


概要


对10个任意数字进行由大到小的排序

写一个程序,对10个任意数字进行由大到小的排序

代码注解

#include <stdio.h>

main() //这种情况下main函数默认为int型
{
	int i,j,a[10]={12,233,100,3,46,0,2,12,18,22},tmp; //定义两个整型变量i,j进行循环控制,一个整理变量tmp用来进行临时存放,一个长度为10的整型数组a用来存放乱序的数列
	for(i=0;i < 10-1;i++)  //i赋初值为0,在[0,8]的范围里,i会逐一递增
	{
		for (j=i+1;j<10;j++)  //j赋初值为i+1,在[i+1,9]的范围里,j会逐一递增
		{
			if (a[i] < a[j])  //对a[i]和a[j]进行比较,如果a[j]更大,则将它俩的值进行对调
			{
				tmp=a[i];
				a[i]=a[j];
				a[j]=tmp;     //参入一个临时变量是进行数值对调的常用方法
			}
		}
	}
	for(i=0;i<10;i++) printf("%d ",a[i]); //i赋初值为0,在[0,9]的范围里,i会逐一递增,遍历并且格式化输出处理过后的数组a
	printf("\n");
	return 0;	//main函数在没有加返回类型的情况下,默认为int型,如果不在此加上返回值,编译过程中会产生警告
}

思路

将第一个元素与剩余所有元素进行比较,找出最大的,存到第一个位置,然后顺次将第二个元素与剩余所有元素进行比较,找出最大的,存到第二个位置,依次类推,遍历完所有元素后,就形成了一个从大到小的列表

基础知识点

  • 数组的定义与赋值
  • 循环的嵌套与控制
原文地址 http://soft.dog/2016/11/21/c-basic-06/

评论