计算机二级-C语言-程序修改题-190116记录-对数组进行排序的两种方法。

//函数fun的功能是:将n个无序整数从小到大排序。

//冒泡排序法:小数往下浮,大数往上浮。把数都存到一个数组,然后两两比较,大数往后交换。双层递减循环。

//第二种方法:都放入一个数组中,然后记录第一个数的下标,它为最小的数,然后依次比较,遇见比这个数小的就交换位置,最后第一位就为所有数中最小的,然后把第二位作为次小数,再依次和后面数作比较。

//重难点:使用指针输出数组,控制一行输出的个数,对数组中数进行排序的方法。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void fun ( int  n, int  *a )
 4 {  int  i, j, p, t;
 5 for (j = 0; j < n; j++)//采用第二种方法
 6    {  p = j;//记录第一个数为最小数。
 7 /************found************/
 8    for (i = j; i <= n - 1; i++)
 9        if (a[p] > a[i])
10            /************found************/
11            p = i;//重新定义p的值。
12     if ( p!=j )
13     { t = a[j]; a[j] = a[p]; a[p] = t; }
14   }
15 }
16 void putarr( int  n,  int  *z )//按序输出数组函数
17 {  int  i;
18   for ( i = 1; i <=  n; i++, z++ )
19   {  printf( "%4d", *z );
20     if ( !( i%10 ) )  printf( "\n" );//控制一行输出的个数为10个。(i%10=0时,这句代码执行。)
21   } printf("\n");
22 }
23 main()
24 {  int  aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
25    printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );
26    fun( n, aa );
27    printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );
28 }

使用第一种方法:更改fun函数为:

 1 void fun ( int  n, int  *a )
 2 {  
 3     int  i, j, p, t;
 4     for (j = 0; j < n; j++)//采用第二种方法
 5     {
 6         for (i = j; i <n; i++)
 7             if (a[j] > a[i])
 8             {
 9                 t = a[j]; a[j] = a[i]; a[i] = t;
10             }
11     }
12 }

 

转载于:https://www.cnblogs.com/ming-4/p/10276478.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值