冒泡排序 pta

输入n(1<=n<=10)个整数,将它们从小到大排序后输出,要求编写函数bubble()实现冒泡排序算法。

函数接口定义:

 
voidbubble(int a[ ], int n);

其中 a为数组,n为数据个数。


#include <stdio.h>
void bubble (int a[ ], int n);
int main(void)
{    
  int n, a[10];
    int i;
    scanf("%d", &n);
    for (i=0; i<n;i++)
        scanf("%d",&a[i]);
    bubble(a,n);
    for (i=0; i<n; i++)
        printf("%d ",a[i]);
  printf("\n");
    return 0;
}

/* 请在这里填写答案 */

输入样例:

8
7 3 66 3 -5 22 -77 2

输出样例:

-77 -5 2 3 3 7 22 66  
void bubble (int a[ ], int n)
{
    int i,j;
    int temp;
    for(i=0;i<n;i++)
    {
        for(j=i;j<n;j++)
        {
                if(a[i]>a[j]){
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
        }
    }
}
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 C 语言程序,可以实现对书籍按照指定方式排序的功能。在这个例子中,使用了冒泡排序算法,按照书籍的价格从小到大进行排序。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_N 100 struct book { char name[50]; float price; }; void swap(struct book *a, struct book *b) { struct book tmp = *a; *a = *b; *b = tmp; } int main() { int n; struct book books[MAX_N]; printf("请输入要排序的书籍数目(不超过 %d 本):", MAX_N); scanf("%d", &n); printf("请依次输入每本书的名称和价格:\n"); for (int i = 0; i < n; i++) { scanf("%s%f", books[i].name, &books[i].price); } // 冒泡排序 for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (books[j].price > books[j + 1].price) { swap(&books[j], &books[j + 1]); } } } printf("按价格从小到大排序后的书籍列表:\n"); for (int i = 0; i < n; i++) { printf("%s %.2f\n", books[i].name, books[i].price); } return 0; } ``` 在这个程序中,我们定义了一个结构体 `book` 来表示一本书,包含了书名和价格两个成员。然后,我们先输入书籍的数量和每本书的信息,再使用冒泡排序算法对书籍按照价格从小到大进行排序,最后输出排序后的结果。 需要注意的是,这个程序中没有对输入的数据进行任何的错误处理,如果输入的数据不符合要求,程序可能会出现意想不到的错误。在实际应用中,需要根据具体的需求进行相应的改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值