好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

1146: 零起点学算法53——数组中插入一个数

1146: 零起点学算法53——数组中插入一个数

Time Limit: 1 Sec   Memory Limit: 64 MB   64bit IO Format: %lld
Submitted: 1749   Accepted: 613
[ Submit ][ Status ][ Web Board ]

Description

给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序

 

Input

多组测试,每组第一行输入一个整数n,然后是n个有序的整数
第二行输入1个整数m和1个整数K

 

Output

将整数m插入到原数组中保持顺序是升序,然后输出2行
第一行是插入以后的数组
第二行是插入以后的数组中下标值是K的数

n m k不超过20

 

Sample Input

 

 3 1 2 5
3 1 

 

Sample Output

 1 2 3 5
2
 

 

Source

零起点学算法

 

  1  #include<stdio.h>
  2   int   main(){
   3       int  n,a[ 50 ],b[ 50  ];
   4       while (scanf( "  %d  " ,&n)!= EOF){
   5           for ( int  i= 0 ;i<n;i++ ){
   6              scanf( "  %d  " ,& a[i]);
   7           }
   8          
  9           int  m,k,j= 0  ;
  10          scanf( "  %d%d  " ,&m,& k);
  11           for ( int  i= 0 ;i<n;i++ ){
  12               if (a[i]< m){
  13                  b[j]= a[i];
  14                  j++ ;
  15               }
  16               else   break  ;
  17           }
  18          b[j]= m;
  19          j++ ;
  20           for ( int  i=j- 1 ;i<n;i++ ){
  21              b[j]= a[i];
  22              j++ ;
  23           }
  24          
 25           for ( int  i= 0 ;i<j- 1 ;i++ ){
  26              printf( "  %d   "  ,b[i]);
  27           }
  28          printf( "  %d\n  " ,b[j- 1  ]);
  29          printf( "  %d\n  "  ,b[k]);
  30       }
  31       return   0  ;
  32  }

 

查看更多关于1146: 零起点学算法53——数组中插入一个数的详细内容...

  阅读:52次