注册 登录
编程论坛 C语言论坛

冒泡排列

Rebom 发布于 2020-11-30 19:42, 1909 次点击
输入9 8 5 4 2 0
按从小到大输出
3 回复
#2
风过无痕19892020-12-01 01:44
回复 楼主 Rebom
程序代码:

#include <stdio.h>

void bubblesort(int *p, int len)
{
    int temp;
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0;j < len - 1; j++)
        {
            if (*(p + j) > *(p + j + 1))
            {
                temp = *(p + j);
                *(p + j) = *(p + j + 1);
                *(p + j + 1) = temp;
            }
        }
    }
}


int main(void)
{

    int i, len, *p;
    int arr[6] = { 9,8,5,4,2,0 };
    p = arr;
    len = sizeof(arr) / sizeof(int);

    bubblesort(p, len);

    for (i = 0; i < 6; i++)
        printf("%d ",arr[i]);
    printf("\n");
    return 0;
}
#3
郭阳yang2020-12-01 10:33
//从大到小
#include<stdio.h>
int main(void)
{
    int k;
    int a[15] ;
    printf("请输入十五个整数\n");
    for(k=0;k<15;k++)
    {
        scanf("%d",&a[k]);
    }
    printf("原数组为;\n");
    for(k=0;k<=14;k++)
    {printf("%d\x20",a[k]);
    }printf("\n");
    int n;  //存放数组a中元素的个数
    int i;  //比较的轮数
    int j;  //每轮比较的次数
    int buf;  //交换数据时用于存放中间数据
    n = sizeof(a) / sizeof(a[0]);  /*a[0]是int型, 占4字节, 所以总的字节数除以4等于元素的个数*/
    for (i=0; i<n-1; ++i)  //比较n-1轮
    {
        for (j=0; j<n-1-i; ++j)  //每轮比较n-1-i次,
        {
            if (a[j] < a[j+1])
            {
                buf = a[j];
                a[j] = a[j+1];
                a[j+1] = buf;
            }
        }
    }
    printf("排序后的数组为;\n");
    for (i=0; i<n; ++i)
    {
        printf("%d\x20", a[i]);
    }
    printf("\n");
    return 0;
}
#4
流星雨2020-12-01 17:44
冒泡,20年回头一看,还是这样
1