C语言编程 C Language Programming - 0

2018-12-12  本文已影响0人  Articraft

编程题0012 (from Programming Teaching Assistant (PTA))

冒泡排序

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

函数接口定义:void bubble (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 

Answer:

void bubble (int a[ ], int n){
  
  int tmp = 0;
  
  for(int i=0; i<n; i++){
    for(int j=n-1; j>i; j--){
      if(a[j]<a[j-1]){
        tmp = a[j-1];
        a[j-1] = a[j];
        a[j] = tmp;
      }
    }
  }
  
}
上一篇下一篇

猜你喜欢

热点阅读