C语言冒泡排序

来源:互联网 发布:手机淘宝 手机天猫 编辑:程序博客网 时间:2024/05/21 12:39
#include<stdio.h>
//排序函数定义
int * sort(int num[],int len,int choise);
int main()
{
    //大循环条件变量
    int con=0;
    do
    {




        int len=0;
        printf("================冒泡排序大法!================\n");
        printf("\n");
        printf("请输入要排序的数字的个数:");
        scanf("%d",&len);
        int newarray[len];
        printf("==============请输入要排序的数字==============\n");
        int p=0;
        for(p=0; p<len; p++)
        {
            printf("请输入第%d个数:",p+1);
            scanf("%d",&newarray[p]);
        }
        int choise=0;
        printf("选择要排序的方式(1,降序 2,升序):");
        scanf("%d",&choise);
        int * ptr_num3;
        ptr_num3=sort(newarray,len,choise);
        //输出排序后的数组
        int j=0;
        for(j=0; j<len; j++)
        {
            printf("%d\n",*(ptr_num3+j));
        }
        //是否继续运行排序
        printf("是否继续进行排序?(1,是 2,否)");
        scanf("%d",&con);
    }
    while(con==1);
    return 0;
}
//排序函数实现
int * sort(int num[],int len,int choise)
{
    int i=0;
    int temp=0;
    int k=0;


    switch(choise)
    {
    case 1:
        for(i=0; i<len; i++)
        {
            for(k=len-1; k>i; k-- )
            {
                //降序排列
                if(num[k]>num[k-1])
                {
                    temp=num[k];
                    num[k]=num[k-1];
                    num[k-1]=temp;
                }
            }
        }
        break;
    case 2:
        for(i=0; i<len; i++)
        {
            for(k=len-1; k>i; k-- )
            {
                //升序排列
                if(num[k]<num[k-1])
                {
                    temp=num[k];
                    num[k]=num[k-1];
                    num[k-1]=temp;
                }
            }
        }
        break;
    }














    return num;
}
原创粉丝点击