慕雨秋枫 发表于 2014-3-23 13:36:01

分享——冒泡排序法


//-------------------------------------------------------//
//源代码来自于Six Wings,慕雨秋枫制作,www.it-teenager.tk//
//-------------------------------------------------------//

/*在本实例中,声明了一个整形数组和一个整形变量,其中整形数组用于存储用户输入的数字,
而整形变量则作为两个元素交换时的中间变量,然后通过双层循环进行冒泡法排序,最后将排
序号的数组进行输出。*/

#include <stdio.h>

void main()
{
      int i, j;//定义两个整形变量
      int a;//定义一个用来存储数据的一维数组
      int iTemp;//定义一个临时变量
      printf("为数组元素赋值:\n");//为数组元素赋值
      for (i = 0 ; i < 10 ; i++)//用来输入数值的循环体
      {
                printf("a[%d]=", i);//打印输入格式
                scanf("%d", &a);//输入数据
      }
      for (i = 1 ; i < 10 ; i++)//外层循环元素,排除掉末尾元素(最后循环一次末尾元素无意义)
      {
                for (j = 9 ; j >= i ; j--)//内层循环元素,排除掉首位元素(对比首位元素无意义)
                {
                        if (a < a)//判断外层元素是否小于内层元素
                        {
                              iTemp = a;//将外层循环较大的元素数值赋给临时变量
                              a = a;//将内层较小的元素数值赋给较大元素数值的地址
                              a = iTemp;//将临时变量中较大的元素数值提取出来赋给较小元素数值的地址
                        }
                }
      }
      for (i = 0 ; i < 10 ; i++)//用来输出数据的循环体
      {
                printf("%d\t", a);//输出数据
                if (i == 4)//单行内显示四个数据
                {
                        printf("\n");//输出数值
                }
      }
}

页: [1]
查看完整版本: 分享——冒泡排序法