写一个冒泡法排序的函数,实现用指针法对10个整数按由小到大顺序排序

起泡法➕指针

#include<stdio.h>
void sort( int x[] ,int n )//自定义函数中形参中的数组初始定义时可以为空[]
{
    int  j , max , t ;//这不就是起泡法吗,唉😮‍💨
    for ( int i = 0 ; i < n - 1 ; i ++ )//十个数,所以只需要比较10-1次
    {
        max = i ;//先假设最大的数是序号为1,也就是x[0]
        for ( j = i + 1 ; j < n ; j ++ )//从第二位数开始进行比较,也就是x[1],所以j=i+1
        {
            if ( x[j] > x[max] )//也可以写成if ( *(x+j) > *(x+max) ,这两者是等价的
            {
                max = j ;
            }
            if ( max != i )//如果上面的假设不成立,就需要换掉相应数组的位置,也就是把第一位地址里面的值给换掉,换成最大的那个数
            {
                t = x[i] ;
                x[i] = x[max] ;
                x[max] = t ;
            }
        }
    }
}
int main ()
{
    int i ;
    int *p ;
    int a[10] ;
    p = a ;
    for ( i = 0 ; i < 10 ; i ++ )//i只起到循环限制的意思,终止循环的条件
    {
        scanf("%d",p++);//p每次循环加一,使其地址每次的前进一位
    }
    p = a ;//因为在上面的循环中p的地址指向已经到了9,所以需要重新指向
    sort( p , 10 ) ;//😊这里指针变量作为数组传给了自定义函数,
    for ( p = a , i = 0 ; i < 10 ; i ++ )
    {
        printf ("%d ",*p);
        p ++ ;
    }
    printf ("\n");
    return 0;
}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值