1187 - C语言7.11
给定一个从小到大有序的整数序列,将其保存至数组。另外输入一个整数,将其插入至这个数组中并保持数组有序。
Input
第一行有一个正整数n,表示原始的整数序列长度为n,保证n不超过50。
第二行有n个整数,表示原始的整数序列,保证这个序列是从小到大给出的。
第三行有一个整数,表示需要插入的整数。
Output
在一行中输出n+1个整数,表示完成插入的整数序列。每个整数后输出一个空格。
请注意行尾输出换行。
Examples
Input
10 1 2 3 4 5 6 7 9 10 11 8
Output
1 2 3 4 5 6 7 8 9 10 11
Solution 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; }
Solution 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; }