1187 - C语言7.11
时间限制 : 1 秒
内存限制 : 32 MB
给定一个从小到大有序的整数序列,将其保存至数组。另外输入一个整数,将其插入至这个数组中并保持数组有序。
题目输入
第一行有一个正整数n,表示原始的整数序列长度为n,保证n不超过50。
第二行有n个整数,表示原始的整数序列,保证这个序列是从小到大给出的。
第三行有一个整数,表示需要插入的整数。
题目输出
在一行中输出n+1个整数,表示完成插入的整数序列。每个整数后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
10 1 2 3 4 5 6 7 9 10 11 8
输出格式
1 2 3 4 5 6 7 8 9 10 11
C语言解答
#include<stdio.h> int main(){ int n,m; int a[50]; int i,j; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(i=0;i<n;i++){ if(a[i]>m) break; } for(j=n;j>i;j--) a[j]=a[j-1]; a[i]=m; for(i=0;i<n+1;i++) printf("%d ",a[i]); printf("\n"); return 0; }
C++解答
#include <stdio.h> int main() { int dat[51]; int n, i, j, insert; scanf("%d", &n); for (i = 0;i < n;i++) scanf("%d", &dat[i]); scanf("%d", &insert); i = 0; while (i < n && dat[i] < insert) i++; for (j = n;j > i;j--) dat[j] = dat[j - 1]; dat[i] = insert; for (i = 0;i < n + 1;i++) printf("%d ", dat[i]); puts(""); return 0; }
Java解答
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int num = s.nextInt() ; List<Integer> list = new ArrayList<Integer>() ; for (int i = 0; i < num; i++) { int temp = s.nextInt() ; list.add(temp) ; } int n = s.nextInt() ; list.add(n) ; Collections.sort(list); for (Integer integer : list) { System.out.print(integer+" "); } System.out.println() ; } }
Python解答
n = input() a = [int(i) for i in raw_input().split()] b = input() d = True for j in range(n+1): if b < a[j] and d: a.insert(j, b) d = False print a[j], print ""