2020-12-02

插入有序数组 (12分)

一个长度为10的数组中输入n(0≤n≤9)个整数,这n个整数从小到大有序。再输入一个x,把它插入数组适当位置,使数组仍保持有序。

输入格式:

输入n,再以从小到大顺序输入n个整数,再输入x。

输出格式:

插入x后的数组,数与数间用空格分割。

输入样例:

5
1 3 5 7 9
2

输出样例:

1 2 3 5 7 9 

代码如下(正能量!!!):

#include<stdio.h>
#define N 10
void sort(int a[],int num);
int main()
{
    int a[N];
    int n;
    int i;
    int num;
    scanf("%d",&n);
    for(i=0;i<n;i++)
		scanf("%d",&a[i]);
    scanf("%d",&num);
    sort(a,num);
    for(i=0;i<n+1;i++)
        printf("%d ",a[i]);
    return 0;
}
void sort(int a[],int num)
{
      int i,j,temp1,temp2;
      int end = a[N-2];                               
      if(num >= end)                                   
          a[N-1] = num;
      else                                            
      {
          for(i = 0; i < N-1; i++)
          if(a[i] > num)                              
          {
              temp1 = a[i];                          
              a[i] = num;                             
              for(j = i+1; j < N; j++)                
              {                                  
                    temp2 = a[j];
                    a[j] = temp1;
                    temp1 = temp2;
              }
              break;                                 
          }
     }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值