#include<iostream> using namespace std; int main() { int n,insert; cin>>n; int a[n+1]; for(int i=0;i<n;i++) cin>>a[i]; cin>>insert; for(int i=0;i<n;i++) { if(insert<a[i])//定位插入位置 { for(int j=n+1;j>i;j--)//后面全都往后窜一位 { a[j]=a[j-1]; } a[i]=insert; break; } a[n]=insert;//要插入的值比所有原数组中所元素都大,放在末尾 } for(int i=0;i<n+1;i++) cout<<a[i]<<" "; return 0; }
#include<stdio.h> int main() { int N , a[50] , b[50]; scanf("%d",&N); for(int i = 0 ; i < N ; i++) scanf("%d",&a[i]); scanf("%d",&a[N]); //printf("%d",a[N]); for(int i = 0 ; i < N ; i++) { if(a[N] > a[N-1]) //a[N]放在最后 { for(int j = 0 ; j < N ; j++) b[j] = a[j]; b[N] = a[N]; break; } else if(a[N] < a[0]) //a[N]放在最前 { b[0] = a[N]; for(int j = 0 ; j < N ; j++) b[j+1] = a[j]; break; } else if(a[N] > a[i] && a[N] < a[i+1]) //a[N]放在中间 { for(int j = 0 ; j <= i ; j++) b[j] = a[j]; b[i+1] = a[N]; for(int k = i + 1 ; k < N ; k++) b[k+1] = a[k]; break; } } for(int c = 0 ; c <= N ; c++) printf("%d ",b[c]); return 0; }
#include <stdio.h> int main() { int a[55],n,i,x; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } scanf("%d",&x); for(i=n;i>0;i--){ if(a[i-1]>=x){ a[i]=a[i-1]; }else{ a[i]=x; break; } } if(i==0) a[i]=x; for(i=0;i<=n;i++){ if(i==n) printf("%d\n",a[i]); else printf("%d ",a[i]); } }
#include<stdio.h> int main(void) { int i,n,num[100]; int t,count=1; scanf("%d",&n);//输入元素个数 for(i=0;i<n;i++)//输入元素的值 { scanf("%d",&num[i]); } scanf("%d",&t);//输入待插入元素 for(i=0;i<n;i++)//插在序列最前面或中间部分 { if(num[i]>t&&count==1) { printf("%d ",t); count=0; } printf("%d ",num[i]); } if(count==1) printf("%d ",t);//插在最后 return 0; }
#include <stdio.h> #include <stdlib.h> int main() { int n = 0; scanf("%d", &n); //申请n+1个空间大小的数组 int* a = (int*)malloc(sizeof(int) * (n + 1)); for(int i = 0; i < n; i++) { scanf("%d", &a[i]); } //插入的数 int m; scanf("%d", &m); int i = 0; //找出要在那个位置插入 for(i = 0; i < n + 1; i++) { if(m <= a[i]) break; } //把这个位置之后的数据往后移一格,n是数组最后一个元素的下标 int j =0; for(j = n; j > i; j--) { a[j] = a[j - 1]; } //插入m到数组,跳出循环是j == i a[j] = m; //打印数组 for(i = 0; i < n + 1; i++) { printf("%d ", a[i]); } return 0; }
#include <stdio.h> int main(){ int arr[10] = { 0 }, len = 0, x = 0; scanf("%d", &len); for(int i = 0; i < len; i++) scanf("%d", &arr[i]); scanf("%d", &x); int i = len - 1; while(arr[i] > x && i >= 0){ arr[i+1] = arr[i]; i--; } arr[i+1] = x; for(int i = 0; i < len + 1; i++) printf("%d ", arr[i]); return 0; }
#include <stdio.h> int main() { int n = 0; scanf("%d", &n); int arr[51] = { 0 }; for (int i = 0;i < n;i++) { scanf("%d", arr + i); } int m = 0; scanf("%d", &m); int i = 0; for (i = n - 1;i >= 0;i--) { if (m >= arr[i]) { arr[i + 1] = m; break; } else { arr[i + 1] = arr[i]; } } if (i < 0) { arr[0] = m; } for (int j = 0;j < n + 1;j++) printf("%d ", arr[j]); return 0; }
#include<stdio.h> void My_scanf(int arr[],int n) { int i = 0; for(i=0;i<n-1;i++) { scanf("%d",&arr[i]); } } void insert(int arr[],int n) { int i = 0; int j = 0; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(arr[i]>=arr[j]) { int temp = 0; temp = arr[i]; arr[i]=arr[j]; arr[j] = temp; } } } } void My_printf(int arr[],int n) { int i = 0; for(i=0;i<n;i++) { printf("%d ",arr[i]); } } int main() { int n = 0; int k = 0; scanf("%d\n",&n); n = n + 1; int arr[n]; My_scanf(arr,n); scanf("%d",&k); arr[n-1]=k; insert(arr,n); My_printf(arr,n); return 0; }
#include<stdio.h> int main() { int n = 0; scanf("%d", &n); int i = 0; int arr[50] = { 0 }; for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } int k = 0; scanf("%d", &k); //输入要插入的数字 arr[n] = k; //将其放在末尾 for (i = n; i >0; i--) { if (arr[i] < arr[i-1]) { int temp = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = temp; } } n++; for (i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
#include <stdio.h> int main() { int i,size=0; scanf("%d",&size); int arr[100]; for (int m=0;m<size;m++){ scanf("%d",&arr[m]); } int ins=0; scanf("%d",&ins); for (i=0;i<=size;i++){ if (arr[i]>ins){ for (int j=size;j>=i+1;j--){ arr[j]=arr[j-1]; } arr[i]=ins; break; } if (i==size){ arr[size]=ins; } } for (int k=0;k<=size;k++){ printf("%d ",arr[k]); } return 0; }
#include <stdio.h> int main() { int N; scanf("%d",&N); int array[N+1]; int i; for(i=0;i<N;i++) { scanf("%d",&array[i]); } int n,j,temp=0; scanf("%d",&n); for(i=0;i<N;i++) //遍历数组 { if(array[i]>=n) //找到第一个比插入数据大的数组元素 { for (j = N; j > i; j--) //从数组末尾依次将数据后移 { array[j]=array[j - 1]; } array[i]=n; break; } } // 如果n比所有元素都大,插入到末尾 if (i == N) { array[N]=n; } for (i = 0; i < N + 1; i++) { printf("%d ", array[i]); } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] nums = new int[n + 1]; for (int i = 0; i < n; i++) { nums[i] = in.nextInt(); } int num = in.nextInt(); nums[n] = num; //把插入数字加到最后 sort_nums(nums); //然后冒泡排序 for (int i = 0; i <= n; i++) { System.out.print(nums[i] + " "); } } public static void sort_nums(int[] nums) { for (int i = 0; i < nums.length - 1; i++) { for (int j = 0; j < nums.length - 1; j++) { if (nums[j] > nums[j + 1]) { int tmp = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = tmp; } } } } }