C语言编程100题-6.2

6.2
输入数组a( 长度为n, n<10),对元素按由小到大顺序排列,然后再输入一个数b插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。
输入(第一行数组大小n,第二行为输入的数组,第三行为插入的整数):
5
5 2 3 4 8
7
输出:
2 3 4 5 7 8
样例输入:
5
5 2 3 4 8
7
样例输出:
2 3 4 5 7 8

#include<stdio.h>
void bubble(int *array, int n)//定义冒泡排序函数,含指针
{
       int i, j, h;
       for (i = 0; i < n - 1; i++)//使下面的梳理顺序再次执行(最多只需执行n-1次,例如43210,经过5-1=4次梳理,可得43210)
       {
              for (j= 0; j < n - i - 1; j++)//单次梳理顺序,顺序排列(例如43210,经过1次梳理,可得32104)
              {
                      if (array[j] > array[j + 1])//数值交换
                      {
                             h = array[j + 1]; array[j + 1] = array[j]; array[j] = h;
                      }
              }
       }
}
int main()
{
       int n,m, b, c, array[100];//n为原数组元素数,m为新添数
       scanf("%d", &n);
       for (b = 0; b < n; b++)
              scanf("%d ", &array[b]);
       scanf("%d", &m);
       array[n] = m;
       bubble(array, n+1);//数组内重置
       printf("%d", array[0]);
       for (c = 1; c <=n; c++)
              printf(" %d", array[c]);
       system("pause");
       return 0;
}

猜你喜欢

转载自blog.csdn.net/nollysoul/article/details/89819941