山东理工ACM:1244

来源:互联网 发布:高铁票ps软件 编辑:程序博客网 时间:2024/05/17 02:03


题目描述

有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。

输入

输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0表示输入数据的结束,本行不做处理。

输出

对于每个测试实例,输出插入新的元素后的数列。

示例输入

3 31 2 40 0

示例输出

1 2 3 4
#include<stdio.h>int main(){ int m, n, a[101],i,flag=0; while (scanf("%d%d", &n, &m) && (n != 0 || m != 0)) {  for (i = 0; i < n; i++)   scanf("%d", &a[i]);  if (m > a[n - 1])   a[n] = m;   else if (m < a[0])  {   for (i = n; i > 0; i--)   {    a[i] = a[i - 1];   }   a[0] = m;  }   else if ((m >= a[0]) && (m <= a[n - 1]))  {   for (i = 0; i < n; i++)   {    if (m >= a[i] && m <=a[i + 1])     flag = i + 1;   }   for (i = n; i > flag; i--)   {    a[i] = a[i - 1];   }   a[flag] = m;  }  for (i = 0; i <= n; i++)  {   printf("%d ", a[i]);  } } return 0;}
0 0
原创粉丝点击