3C语言提高标准---数组排序

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

int main()
{
    int a[]={10,29,33,44,51,11,23,45,6,72,43,3};
    int n;
    n=sizeof (a)/sizeof (a[0]);//计算数组元素个数
    //数组排序前打印
    printf("befor:");
    for (int i=0;i<n;i++) {
        printf("%d ",a[i]);
    }
    printf("\n");
    //排序
    int temp;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<n-i-1;j++) {

            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    //数组排序后打印
    printf("After:");
    for (int i=0;i<n;i++) {
        printf("%d ",a[i]);
    }
    printf("\n");

    return 0;
}
运行结果:

《3C语言提高标准---数组排序》


函数封装:
//如果数组作为函数参数,数组形参退化为指针
//void printf_array(int a[10],int n)
//void printf_array(int *a,int n)
void printf_array(int a[],int n)
{
    for (int i=0;i<n;i++) {
        printf("%d ",a[i]);
    }
    printf("\n");

}
void sort_array(int a[],int n)
{
    int temp;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<n-i-1;j++) {

            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }

}
int main()
{
    int a[]={10,29,33,44,51,11,23,45,6,72,43,3};
    int n;
    n=sizeof (a)/sizeof (a[0]);
    printf("befor:\n");
    printf_array(a,n);
    sort_array(a,n);
    printf("after:\n");
    printf_array(a,n);
    return 0;
}

运行结果:
《3C语言提高标准---数组排序》

    原文作者:别问我fxc
    原文地址: https://blog.51cto.com/14165014/2453095
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞