杭电Oj刷题(2019)

数列有序!

题目描述:

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

Input

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

Output

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

Sample Input

3 3 
1 2 4 
0 0

Sample Output

1 2 3 4

通过答案:

#include <stdio.h>
int main(){
	int n,m,i,j,k;
	while(scanf("%d %d",&n,&m)!=EOF){
		if(m==0||n==0)break;                 //n和m同时为0标示输入数据的结束,本行不做处
		int a[100];
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);	
		a[n]=m;
		for(k=n-1;k>=0;k--){                //排序 ! 
		    if(a[k]>a[k+1]){
		        int temp=a[k];
		       	a[k]=a[k+1];
		       	a[k+1]=temp;
			}else
			   	break;
		} 
		for(j=0;j<=n;j++){                 //输出格式 
		    if(j==0)
		  		printf("%d",a[j]);
			else
				printf(" %d",a[j]);
		}
		printf("\n");                        //换行 
	}
	return 0;
}
发布了55 篇原创文章 · 获赞 0 · 访问量 1020

猜你喜欢

转载自blog.csdn.net/ZhangShaoYan111/article/details/104099995