1187 - C语言7.11

通过次数

0

提交次数

0

时间限制 : 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 ""